mysql_select_db被废除后在php7用啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql_select_db被废除后在php7用啥?相关的知识,希望对你有一定的参考价值。

参考技术A 不仅仅是mysql_select_db,整个mysql扩展都被废除了
推荐使用mysqli扩展或PDO扩展操作数据库。
mysqli和mysql比较相似,改以前的源码比较方便。
PDO可以支持几乎所有主流数据库,如果你只是用mysql数据库,那用mysqli还是用PDO都可以。本回答被提问者采纳

mysql_select_db() 期望参数 2 是资源,给定 PHP 验证的对象

【中文标题】mysql_select_db() 期望参数 2 是资源,给定 PHP 验证的对象【英文标题】:mysql_select_db() expects parameter 2 to be resource, object given PHP validation 【发布时间】:2016-03-24 20:13:02 【问题描述】:

我正在尝试使用 PHP 验证用户登录,但是我收到以下错误

警告:mysql_select_db() 期望参数 2 是资源、对象 在第 18 行的 C:\xampp\htdocs\db\sign_in_connect.php 中给出

警告:mysql_fetch_array() 期望参数 1 是资源, 第 22 行 C:\xampp\htdocs\db\sign_in_connect.php 中给出的布尔值 抱歉,您的凭据无效,请重试。

这是我的 PHP 代码

<?php
try
  $db = mysqli_connect ('localhost', 'root', '', 'car_rental') or die ("SQL is Off");


catch (Exception $e)
  echo "SQL is Off";
  exit;


echo "success"; 

$email = $_POST["email"];
$pass = $_POST["pass"];



mysql_select_db("car_rental",$db);

$result = mysql_query("SELECT email, users FROM users WHERE email = $email");

$row = mysql_fetch_array($result);

if($row["email"]==$email && $row["pass"]==$pass)
    echo"You are a validated user.";
else
    echo"Sorry, your credentials are not valid, Please try again.";


?>

【问题讨论】:

在你的代码中混合mysql and mysqli!!阅读php.net/manual/en/mysqli.select-db.php 您正在混合使用 mysqli_mysql_ 函数。因此使用较新的mysqli_ 函数(或PDO)。 你必须只需要使用一种方法mysql或mysqli... 停止使用mysql,因为它不安全。如果您有时间,请花时间将 PDO 理解为数据库连接器。 One tutorial 嗯,我正在学习 php 和 mysql,对此我比较陌生 【参考方案1】:

用这个替换你的代码。

   <?php
   try
    $db = mysqli_connect ('localhost', 'root', '', 'car_rental') or die  ("SQL is Off");

     
    catch (Exception $e)
   echo "SQL is Off";
    exit;

  
 echo "success"; 

$email = $_POST["email"];
$pass = $_POST["pass"];

mysqli_select_db($db,"car_rental");
$result = mysqli_query($db,"SELECT email, users FROM users WHERE email =$email");

//$row = mysql_fetch_array($result);
  $row = $result->fetch_array(MYSQLI_ASSOC);
 if($row["email"]==$email && $row["pass"]==$pass)
    echo"You are a validated user.";
   else
     echo"Sorry, your credentials are not valid, Please try again.";


    ?>

【讨论】:

为什么要定义两次数据库。他已经在连接字符串中定义了数据库。就在这里:$db = mysqli_connect ('localhost', 'root', '', 'car_rental') 谢谢,但我现在收到此错误警告:mysqli_fetch_array() 期望参数 1 为 mysqli_result,布尔值在第 20 行的 C:\xampp\htdocs\db\sign_in_connect.php 中给出 您在这里的电子邮件中犯了同样的错误。 使用了这个 $row = $result->fetch_array(MYSQLI_ASSOC);

以上是关于mysql_select_db被废除后在php7用啥?的主要内容,如果未能解决你的问题,请参考以下文章

jquery toggle 方法被废除的替代方法

php与mysql之间操作原理

vue2.0新增和废除

用php的 mysql_select_db 选择数据库 老是报1064

如何使用 PHP 7 启用 MySQL [重复]

微信安装包11年膨胀575倍,UP主:“98%的文件是垃圾”;苹果应用商店被曝大量色情App;四大科技巨头呼吁废除闰秒|极客头条