我正在尝试与XAMPP和MySQL服务器进行简单的连接,但每当我尝试输入数据或连接到数据库时,我都会收到此错误.
致命错误:未捕获Error:调用在C未定义函数mysql_connect()函数:\ XAMPP\htdocs中\ register.php:22
堆栈跟踪:#0 {主}扔在C:\ XAMPP\htdocs中\上线22 register.php
第22行的例子:
$link = mysql_connect($mysql_hostname , $mysql_username);
小智.. 105
mysql_*
PHP 7中删除了函数.
您可能在XAMPP中使用PHP 7.您现在有两种选择:MySQLi和PDO.
另外,这是一个关于PDO的不错的wiki页面.
mysql_*
PHP 7中删除了函数.
您可能在XAMPP中使用PHP 7.您现在有两种选择:MySQLi和PDO.
另外,这是一个关于PDO的不错的wiki页面.
你可以用mysqli_connect($mysql_hostname , $mysql_username)
而不是mysql_connect($mysql_hostname , $mysql_username)
.
mysql_*
从PHP 7开始,函数被删除.您现在有两种选择:MySQLi和PDO.
建议使用MySQLi或PDO扩展.建议不要将旧的mysql扩展用于新开发,因为它在PHP 5.5.0中已被弃用,并在PHP 7中被删除.
PHP提供三种不同的API来连接MySQL.下面我们展示了mysql,mysqli和PDO扩展提供的API.每个代码段使用用户名"username"和密码"password"创建与"example.com"上运行的MySQL服务器的连接.并运行查询以问候用户.
示例#1比较三个MySQL API
query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL"); $row = $result->fetch_assoc(); echo htmlentities($row['_message']); // PDO $pdo = new PDO('mysql:host=example.com;dbname=database', 'username', 'password'); $statement = $pdo->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL"); $row = $statement->fetch(PDO::FETCH_ASSOC); echo htmlentities($row['_message']); // mysql $c = mysql_connect("example.com", "username", "password"); mysql_select_db("database"); $result = mysql_query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL"); $row = mysql_fetch_assoc($result); echo htmlentities($row['_message']); ?>
我建议你试用MySQLi和PDO,找出你喜欢的API设计.
阅读选择API,为什么我不应该在PHP中使用mysql_*函数?
mysql_*
PHP 7中删除了函数.
您现在有两种选择:MySQLi和PDO.
以下是对MySQLi的一些常见更改的之前( - )和之后(+)比较,直接取决于工作代码:
-if (!$dbLink = mysql_connect($dbHost, $dbUser, $dbPass)) +if (!$dbLink = mysqli_connect($dbHost, $dbUser, $dbPass)) -if (!mysql_select_db($dbName, $dbLink)) +if (!mysqli_select_db($dbLink, $dbName)) -if (!$result = mysql_query($query, $dbLink)) { +if (!$result = mysqli_query($dbLink, $query)) { -if (mysql_num_rows($result) > 0) { +if (mysqli_num_rows($result) > 0) { -while ($row = mysql_fetch_array( $result, MYSQL_ASSOC )) { +while ($row = mysqli_fetch_array( $result, MYSQLI_ASSOC )) { -mysql_close($dbLink); +mysqli_close($dbLink);
正如其他答案所暗示的那样......有些人(无论出于何种原因)决定在升级PHP时你的旧代码不起作用,因为他比你更了解并且不关心你的代码做什么或者它有多简单你升级了.
好吧,如果你不能在一夜之间升级你的项目,你可以
将您的PHP版本降级为适用的版本
要么...
使用垫片(一种polyfill),如https://github.com/dshafik/php7-mysql-shim或https://github.com/dotpointer/mysql-shim,然后
include_once("choice_shim.php");
在代码中的某个地方找一个地方
这将使您的旧PHP代码保持运行,直到您有心情更新...