如何使用mysql_函数将脚本转换为使用mysqli_函数?

如何使用mysql_函数将脚本转换为使用mysqli_函数?,第1张

如何使用mysql_函数将脚本转换为使用mysqli_函数? 注意:

从转换

mysql_
mysqli_
可能不是最佳的。如果您准备将所有代码转换为OOP,请考虑使用
PDO

这是很有诱惑力的尝试更换的所有实例

mysql_
mysqli_
祈祷它的工作原理。您会很亲密,但不是很准。

连接到数据库:

幸运的是,该方法与您可以交换它们的功能名称

mysqli_connect
足够接近
mysql_query

mysql_:

$con = mysql_connect($host, $username, $password);

mysqli_:

$con = mysqli_connect($host, $username, $password);
选择一个数据库

现在,利用

mysqli_
库中的大多数其他功能,您需要
mysqli_select_db
将数据库连接作为其 第一个
参数传递。大多数
mysqli_
功能首先需要连接对象。

对于此函数,您只需切换传递给该函数的参数的顺序即可。如果您之前未将其传递给连接对象,则 必须立即将其添加为第一个参数。

mysql_:

mysql_select_db($dbname, $con);

mysqli_:

mysqli_select_db($con, $dbname);

另外,您还可以将数据库名称作为第四个参数传递,从而

mysqli_connect
绕过了call的需要
mysqli_select_db

$con = mysqli_connect($host, $username, $password, $dbname);
清理用户输入

使用

mysqli_real_escape_string
与十分相似
mysql_real_escape_string
。您只需要传递连接对象作为第一个参数。

mysql_:

$value1 = mysql_real_escape_string($input_string);

mysqli_:

$value1 = mysqli_real_escape_string($con, $input_string);
非常重要:准备和运行查询

mysql_
不建议使用功能的原因之一是它们无法处理预准备的语句。如果您只是简单地将代码转换为,
mysqli_
而没有采取此重要步骤,则可能会遇到一些功能上的最大弱点
mysql_

值得阅读有关准备好的语句及其好处的这些文章:

维基百科-预备陈述

PHP.net-MySQLi准备的语句

注意:使用准备好的语句时,最好显式列出要尝试查询的每一列,而不是使用

*
表示法查询所有列。这样,您可以确保已计入对的调用中的所有列
mysqli_stmt_bind_result

mysql_:

$query = 'SELECT * FROM table1 WHERe table1.col1=' . $value1 . '';$result = mysql_query($query, $con);while($row = mysql_fetch_assoc*$result){    $col1 = $row['col1'];    $col2 = $row['col2'];    echo $col1 . ' ' . $col2 . '<br />';}

mysqli_:

$query = 'SELECt col1,col2 FROM table1 WHERe table1.col1=?';if ($stmt = mysqli_prepare($link, $query)) {        mysqli_stmt_bind_param($stmt, "s", $value1);        mysqli_stmt_execute($stmt);        mysqli_stmt_bind_result($stmt, $col1, $col2);        while (mysqli_stmt_fetch($stmt)) {                echo $col1 . ' ' . $col2 . '<br />';    }        mysqli_stmt_close($stmt);}
显示错误

显示错误与的作用略有不同

mysqli_
mysqli_error
需要连接对象作为其第一个参数。但是,如果连接失败怎么办?
mysqli_
引入了一些不需要连接对象的
mysqli_connect_*
函数:函数。

mysql_:

if (!$con) {    die('Could not connect: ' . mysql_error());}if (!$result) {    die('SQL Error: ' . mysql_error());}

mysqli_:

if (mysqli_connect_errno()) {    die( 'Could not connect: ' . mysqli_connect_error() );}if ($stmt = mysqli_prepare($link, $query)) {    // ... execute query    if (mysqli_stmt_error($stmt)) {        echo 'SQL Error: ' . mysqli_stmt_error($stmt);    }}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4991553.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存