致命错误调用未定义的函数mysql_connect()

时间:2016-03-29 15:10:02

标签: php mysql mysqli

我知道之前已经问过这个问题,但我很抱歉,因为我不熟悉javascript,所以我无法理解。我用过这段代码

if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['formid'] == 'form2')
 {
     $username = $_POST['username'];
      $email = $_POST['email'];
      $upass = $_POST['password'];
     $mysql_server = 'localhost';
     $mysql_database = 'register';
     $mysql_table = 'users';
     $mysql_username = 'root';
      $mysql_password = '';

$db = mysql_connect($mysql_server, $mysql_username, $mysql_password, $mysql_database) or  die('Failed to connect to database server!<br>'.mysql_error());
mysql_select_db('register', $db) or die('Failed to select   database<br>'.mysql_error());

if(mysql_query("INSERT INTO users(email,username,password) VALUES  ('$username','$email','$upass')"))
 {
 $msg="New record created successfully";
   ?>
<html><body>
alert("<?php echo $msg; ?>")</body></html>
<?php
mysql_close($db);
header("location: home.php");
}   
   else
{  
$msg="Error: " . $sql . "<br>" ;
}
  exit;
}

它给我致命的错误调用未定义的函数mysql_connect()

然后我读到mysql_connect()无法在所有系统上运行,因此我们也可以使用mysqli_connect()
然后我用mysql替换了所有mysqli,但现在我收到了这两个警告

  

警告:mysqli_select_db()要求参数1为mysqli,第19行的C:\ xampp \ htdocs \ loginpage.php中给出了字符串

     

警告:mysqli_error()期望在第19行的C:\ xampp \ htdocs \ loginpage.php中给出1个参数0   无法选择数据库

我还观看了一段视频,其中告诉我们应该找到一个名为php.ini的文件并替换extension_dir =&#34; ./"使用extension_dir =&#34; C:\ xampp \ php \ ext&#34; 但当我查看文件时,我发现了两个声明。 请帮帮我,我该怎么办。 我正在使用xampp服务器。

这是我的mysqli代码

  if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['formid'] == 'form2')
   {
     $username = $_POST['username'];
    $email = $_POST['email'];
    $upass = $_POST['password'];
    $mysql_server = 'localhost';
   $mysql_database = 'register';
    $mysql_table = 'users';
    $mysql_username = 'root';
    $mysql_password = '';

      $db = mysqli_connect($mysql_server, $mysql_username, $mysql_password, $mysql_database) or die('Failed to connect to database server!<br>'.mysqli_connect_error());
      mysqli_select_db('register', $db) or die('Failed to select database<br>'.mysqli_connect_error());
        $sql="INSERT INTO users(email,username,password) VALUES ('$username','$email','$upass')";
       if (mysqli_query($conn, $sql)) 
     {
      $msg="New record created successfully";

    ?>
    <html><body>
alert("<?php echo $msg; ?>")</body></html>
<?php
mysqli_close($db);
header("location: loginpage.php");
   }    
    else
      {  
    $msg="Error: " . $sql . "<br>" ;
     }
    exit;
   }

2 个答案:

答案 0 :(得分:0)

使用mysqli_connect()而不是mysql_connect()

mysql函数不建议,它已经放弃了

答案 1 :(得分:0)

使用mysqli_*个功能。正如您发现mysql_*函数已经过时,甚至在较新的php中删除。

然而,新功能的不同之处在于它们将数据库连接作为第一个参数。所以调用应该看起来像(或者实际上你可以将db名称作为第4个参数传递给mysqli_connect函数):

    mysqli_select_db($db, 'register')

同样适用于查询等。