Использование mysqli_query с аргументами mysql_query - PullRequest
0 голосов
/ 20 февраля 2019

Я перехожу с 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 голосов
/ 20 февраля 2019

Порядок аргументов не является взаимозаменяемым. 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);
...