Я обновляю старый веб-сайт, на котором установлена самая новая версия WordPress с некоторым интегрированным простым PHP-кодом. PHP-код использует старые функции mysql_
для выполнения запросов db, и поскольку я обновляю версию PHP до 5.6, я должен избавиться от них.Обновление WordPress для использования mysqli вместо mysql
Я начал просто заменять mysql_
на mysqli_
всюду, однако это приводит к следующей проблеме. Если у Вас есть вопрос, который работал раньше:
mysql_query("SELECT...");
Теперь он выдает ошибку, потому что и mysqli_query("SELECT...")
ожидает, что первый параметр будет подключение к базе данных.
Одним из решений, которые я могу думать о том, чтобы использовать $wpdb
везде вместо простых функций MySQL, однако, код имеет тысячи запросов и заменить все из них оказалось бы быть немного проблематично, как mysqli_query
функции обычно следуют mysqli_fetch
и т. д.
Решение, к которому я склоняюсь, - это как-то получить соединение из базы данных, которую использует WordPress, сохранить ее в переменной, скажем $con
, а затем просто выполнить поиск и заменить все текущий mysqli_query(
с mysqli_query($con,
. Я думаю, что это должно работать, но я понятия не имею, как инициализировать переменную $con
, поскольку кажется, что нет возможности получить соединение с переменной $wpdb
? Поэтому два вопроса:
Есть ли на самом деле способ инициализации переменной
$con
через$wpdb
или другой способ WordPress?Если ответ отрицательный, тогда было бы разумно фактически инициализировать
$con
, создав новое соединение mysqli с базой данных и используя его для запуска запросов? (Я знаю, что ответ не только поэтому отсутствие решения я мог бы приступить к этой опции в конце ...)
И бонусный вопрос: Может ли кто-нибудь придумать лучшее решение/обходной путь для эта проблема из тех, о которых я уже говорил?
Спасибо!
Спасибо, я только что понял, как сделать это сам. Вы можете фактически объявить «глобальный $ wpdb», а затем использовать «$ wpdb-> dbh» в качестве первого параметра в mysqli_query() и т. Д. Спасибо! – mmvsbg