我正在从PHP5迁移到PHP7,并且我创建了一个grep来让所有的mysql_query将它们更改为mysqli_query。问题是,显然参数是使用过程化样式更改的。
mysql_query($query, $link_identifier)
mysqli_query($link_identifier, $query)即使使用面向对象的样式,它们仍然是相同的参数。
问题是,如果我将mysqli_query的参数保留为$query, $link,并认为该函数足够智能,可以检测出哪个是哪个,或者我需要将它们全部更改以匹配正确的参数,那么它会起作用吗?
发布于 2019-02-20 17:59:36
参数的顺序是不可互换的。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);https://stackoverflow.com/questions/54783138
复制相似问题