将mysqli_query与mysql_query参数一起使用

时间:2019-02-20 09:40:48

标签: php mysql migration php-7

我正在从PHP 5迁移到PHP 7,并做了一个grep命令来获取所有mysql_query并将其更改为mysqli_query。问题在于,显然参数是使用过程样式更改的。

mysql_query($query, $link_identifier)
mysqli_query($link_identifier, $query)

即使使用面向对象的样式,它们仍然是相同的参数。

问题是,如果我将mysqli_query的参数保留为$query, $link,以为该功能足够智能以检测哪个是哪个,或者我需要更改所有参数以匹配正确的参数,它将起作用吗? ?

1 个答案:

答案 0 :(得分:-1)

参数顺序不可互换。 Php.net mysqli_query. Php.net mysql_query.

我也测试了它。
mysql_query

$link = mysql_connect("localhost","login","pass");

$db_selected = mysql_select_db('db', $link);

$sql = "SELECT * FROM table LIMIT 5";
$result = mysql_query($sql, $link);

while($row = mysql_fetch_array($result)) {
    echo $row['col_name'];
}

mysql_close($link);

mysqli_query具有错误的参数顺序将在此处生成Warning: mysqli_query() expects parameter 1 to be mysqli, string given代码:

$link = mysqli_connect("localhost", "login", "pass", "db");

//arguments in wrong order
if ($result = mysqli_query("SELECT * FROM table LIMIT 5", $link)) {
    while($row = mysqli_fetch_array($result)) {
        echo $row['col_name'];
    }
}
//produce
//Warning: mysqli_query() expects parameter 1 to be mysqli, string given in

mysqli_close($link);