Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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
尝试使用XAMPP访问我的计算机上的网站时出现PHP致命错误_Php_Xampp - Fatal编程技术网

尝试使用XAMPP访问我的计算机上的网站时出现PHP致命错误

尝试使用XAMPP访问我的计算机上的网站时出现PHP致命错误,php,xampp,Php,Xampp,我已经在我的PC上建立了一个支持XAMPP、MySQL和Apache的网站。我犯了这个致命的错误。我已经设置了配置文件,并正确地遵循了ReadMe。然而,我似乎无法找到问题所在。在配置文件中正确设置数据库,并将.sql上载到phpmyadmin Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\includes\global.php:29 Stack trace:

我已经在我的PC上建立了一个支持XAMPP、MySQL和Apache的网站。我犯了这个致命的错误。我已经设置了配置文件,并正确地遵循了ReadMe。然而,我似乎无法找到问题所在。在配置文件中正确设置数据库,并将.sql上载到phpmyadmin

Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\includes\global.php:29 Stack trace: #0 C:\xampp\htdocs\includes\global.php(107): db_connection() #1 C:\xampp\htdocs\admin\index.php(9): include_once('C:\\xampp\\htdocs...') #2 {main} thrown in C:\xampp\htdocs\includes\global.php on line 29
global.php中的第26-33行

function db_connection()
{
    global $config,$data_sql;
    $data_sql = mysql_connect($config["sql_host"], $config["sql_user"], $config["sql_pass"]);
    if (!$data_sql) die("Can't connect to MySql");
    mysql_select_db($config["db_name"],$data_sql) or die("Can't select database");
}
function db_close()

据我所知,从PHP7+来看,mysql_connect被贬值了。如果您运行的是较旧版本的php,尝试使用mysql\u connect,人们会对您大喊大叫。快速的谷歌搜索会在php文档中找到这句话

警告 该扩展在PHP5.5.0中被弃用,在PHP7.0.0中被删除。相反,应该使用MySQLi或PDO_MySQL扩展

为了回应您的评论,这里有一个到数据库的典型连接的PDO示例

<?php
$servername = "localhost";
$dbusername = "root";
$dbpassword = "root";
$dbname = "dbname";

try{
$pdo = new PDO("mysql:host=$servername;dbname=$dbname",$dbusername, 
$dbpassword);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
print "Error! Unable to connect: " . $e->getMessage() . "<br/>";
die();
}
?>

自PHP5.5+以来,myql_connect()已被弃用,并在PHP7中删除。您可以使用mysqli_connect()或pdo。如果您仍然想使用mysql_connect(),请尝试使用phpWhat版本的PHP
mysql\u connect()
在PHP5.5中被贬低,在PHP7.0中被删除。您可能希望使用
myql\u connect()
是从PHP5.5+开始的,并在PHP7中删除。您可以使用
mysqli_connect()
pdo
。如果您仍然想使用mysql_connect(),请尝试在帖子中添加phpI代码。我将mysql_connect和mysql_select_db都更改为mysqli_connect和mysqli_select_db,错误消失了,但现在显示无法选择数据库。我在帖子中添加了代码。我把mysql_connect和mysql_select_db都改为mysqli_connect和mysqli_select_db,但现在它说不能选择数据库。看看我编辑的答案,它使用PDO。这取决于我的偏好。我在函数db_connection和db_close之间添加了这一点,编辑了$servername$dbusername等,现在我得到了以下错误:
Parse error:syntax error,意外的“$servername”(T_变量),预期为'在C:\xampp\htdocs\includes\global.php的第27行
我刚刚尝试使用它,得到了一个:
致命错误:未捕获错误:调用C:\xampp\htdocs\includes\global.php中未定义的函数mysql_query()。109堆栈跟踪:#0 C:\xampp\htdocs\index.php(8):include#once()#1{main}在C:\xampp\htdocs\includes\global.php的第109行
应该是
mysqli\u查询
。每个以
mysql\u开头的语句都被弃用并从PHP7+中删除。我知道了。非常感谢。我将所有以mysql\u开头的语句都改为mysqli\u;但是现在它显示:
错误,请联系网站管理员获取更多信息有关详细信息。
@KingOfJe这可能会告诉我您可能会抛出的错误。在哪一行引发此异常?您可以发布堆栈跟踪吗?请检查您的
错误。如果在浏览器中找不到显示的错误,请记录
。Issac是正确的:)您的配置数组没有
localhost
username
的条目de>pwhere
db
$servername 
$dbusername 
$dbpassword 
$dbname 
function db_connection()
{
    global $config,$data_sql;
    $data_sql = mysqli_connect($config["sql_host"], $config["sql_user"], $config["sql_pass"], $config["db_name"]); 
    // You can select the db, by passing it as 4th param if you like
    if (!$data_sql) die("Can't connect to MySql".mysqli_error($data_sql ) );

}