Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 致命错误:未捕获错误:调用未定义的函数mysql_connect()_Php_Mysql_Xampp - Fatal编程技术网

Php 致命错误:未捕获错误:调用未定义的函数mysql_connect()

Php 致命错误:未捕获错误:调用未定义的函数mysql_connect(),php,mysql,xampp,Php,Mysql,Xampp,我正在尝试与XAMPP和MySQL服务器进行简单连接,但每当我尝试输入数据或连接到数据库时,都会出现此错误 致命错误:未捕获错误:在C:\xampp\htdocs\register.php:22中调用未定义的函数mysql\u connect() 堆栈跟踪:#0{main}在第22行的C:\xampp\htdocs\register.php中抛出 第22行的示例: $link = mysql_connect($mysql_hostname , $mysql_username); mysql.*

我正在尝试与XAMPP和MySQL服务器进行简单连接,但每当我尝试输入数据或连接到数据库时,都会出现此错误

致命错误:未捕获错误:在C:\xampp\htdocs\register.php:22中调用未定义的函数mysql\u connect() 堆栈跟踪:#0{main}在第22行的C:\xampp\htdocs\register.php中抛出

第22行的示例:

$link = mysql_connect($mysql_hostname , $mysql_username);

mysql.*
函数已在PHP7中删除

您可能在XAMPP中有PHP7。你现在有两个选择:和


另外,这是一个关于PDO的不错的wiki页面。

您可以使用
mysqli\u connect($mysql\u hostname,$mysql\u username)
而不是
mysql\u connect($mysql\u hostname,$mysql\u username)


mysql.*
函数从PHP7开始被删除。您现在有两种选择:和。

mysql\uz
函数已从PHP7中删除。您现在可以使用或

MySQLi示例:

mysqli_connect($mysql_hostname, $mysql_username, $mysql_password, $mysql_dbname);

建议使用MySQLi或PDO扩展不建议在新开发中使用旧的mysql扩展,因为它在PHP5.5.0中被弃用,在PHP7中被删除。

PHP提供了三种不同的API来连接MySQL。下面我们展示了mysql、mysqli和PDO扩展提供的API。每个代码段使用用户名“username”和密码“password”创建到运行在“example.com”上的MySQL服务器的连接。然后运行一个查询来问候用户

示例#1比较三个MySQL API

<?php
// mysqli
$mysqli = new mysqli("example.com", "username", "password", "database");
$result = $mysqli->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设计


PHP7中的Read和

mysql*
函数已被删除

你现在有两个选择:和

以下是直接从工作代码中获取的迁移到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),比如or,然后为
include_once(“choice_shim.php”)找到一个位置代码中的某个地方


这将使您的旧PHP代码保持正常运行,直到您有心情更新…

请确保您没有像我这样输入错误

msyql_fetch_assoc应该是mysql


对于mysqli,您可以使用:

$db=adonnewconnection('mysqli')

。。。


$db->execute(“设置名称‘utf8’”)

如果在创建dockerfile时遇到类似问题,我会遇到相同的情况:- 我在mysql_connect函数中使用了以下更改:-

if($CONN=@mysqli_connect($DBHOST、$DBUSER、$DBPASS)){
//mysql\u query(“设置字符集'gbk',$CONN);

。它们不再被维护。请参阅?改为了解,并使用或。将mysql\u connect($mysql\u主机名,$mysql\u用户名)更改为mysql\u connect($mysql\u主机名,$mysql\u用户名,$mysql\u密码)。此外,如果我在phpmyadim上不使用密码,请切换到PDO或MySQLi?(尝试执行所有这些远程操作只是因为我需要手机才能连接到数据库)如果您在legacy CodeIgniter中遇到此错误,请在
config/database.php
'dbdriver'=>'mysqli',
(将
mysql
更改为
mysqli
。不过,可能还需要对代码进行其他更改。在Ubuntu16.04上,这需要
php7.0-mysql
包。正如@ceejayoz所说,实际上需要对几个API进行更改,不仅是对函数名,而且对它们的参数顺序进行更改。非常令人沮丧。虽然很粗糙,但却很简单。)至少在我使用PDO连接优化我的代码之前,这对我是有效的