Я хотел бы получить полный результат подготовленного оператора в виде массива (пары ключ/значение), чтобы позже использовать его в функции str_replace()
.
Моя таблица имеет три столбца, индекс и поля "x1" и "x2". Я успешно использовал следующее:
$db = new mysqli("servername", "username", "pw", "dbname");
if($ps1 = $db->prepare("SELECT x1, x2 FROM my_table")) {
$ps1->execute();
$ps1->bind_result($search, $replace);
$result = array();
while ($ps1->fetch()) {
$result[$search] = $replace;
}
$ps1->close();
}
Тем не менее, я имею в виду, что должен быть более простой способ, без в while
цикла, получение полного результата, не суммируется из отдельных строк один за другим.
Я рассмотрел другие вопросы, и я придумал следующее, но это не сработает ("Warning: mysqli_fetch_assoc() ожидает, что параметр 1 будет mysqli_result"):
if($ps1 = $db->prepare("SELECT x1, x2 FROM my_table")) {
$ps1->execute();
$result = mysqli_fetch_assoc($ps1);
return $result;
$ps1->close();
}
Я также пробовал $result = mysqli_fetch_all($ps1);
без успеха (получение "Вызов неопределенной функции mysqli_fetch_all()").
BTW, я использую PHP 5.6.
ДОПОЛНЕНИЕ после некоторых ответов и обсуждения в комментариях относительно MYSQLND:
phpinfo()
отображает следующую информацию в разделе mysqlnd
:
Загруженные плагины: mysqlnd, debug_trace, auth_plugin_mysql_native_password, auth_plugin_mysql_clear_password, auth_plugin_sha256_password