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用啥?的主要内容,如果未能解决你的问题,请参考以下文章
用php的 mysql_select_db 选择数据库 老是报1064
微信安装包11年膨胀575倍,UP主:“98%的文件是垃圾”;苹果应用商店被曝大量色情App;四大科技巨头呼吁废除闰秒|极客头条