简体   繁体   中英

PHP Fatal Error when trying to access a website on my computer with XAMPP

I have set up a website on my PC with XAMPP, MySQL and Apache enabled. I am getting this fatal error. I have set up the config files and followed the read-me correctly. However I cannot seem to get where the problem is. Database is correctly set up in config files and upload .sql to 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

Line 26-33 in global.php

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()

mysql_connect is depreciated as far as i'm aware from php 7+. Try to use PDO or mysqli it's more secure and people will shout at you if you try to use mysql_connect if you're running an older version of php. A quick google search would've found this quote in the php documentation.

Warning This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used.

In response to your comment, here's a PDO example of a typical connection to the database

<?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();
}
?>

Edit the variables to suit your needs at the top, provided the details are correct the only thing that needs to be changed are the

$servername 
$dbusername 
$dbpassword 
$dbname 

myql_connect() is deprecated since php 5.5+ and removed in php 7. You can either use mysqli_connect() or pdo . If you still want to use mysql_connect() try with php<7(which I wouldn't recommend)

Using mysqli ,

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 ) );

}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM