Mysqli: неизвестный сервер - PullRequest
3 голосов
/ 26 июня 2011

Кажется, это довольно распространенная ошибка, но я не могу ее решить. Я бегу PHP 5.3.1 к внешний сервер MySQL 5.5.8 - оба установлены с Phpmyadmin и работают под управлением Windows Server 2k8R2.

Когда я пытаюсь сделать следующее:

   $connection = new mysqli("myhost.com:3306", "myUser", "myPwd", "myDB");
   $result = $connection->prepare("SELECT * FROM tt_staff
                           WHERE crew_type = ?
                           AND inaktiv_vakt = 0
                           ORDER BY ansvarlig_vakt DESC, crew_type, navn_vakt");
   $result->bind_param("s", $value);
   $result->execute();
   $result->bind_result($value, $name);

Я получаю Предупреждение: mysqli :: mysqli () [mysqli.mysqli]: (HY000 / 2005): неизвестный хост сервера MySQL (...) "

Я удостоверился, что Mysqli включен в php.ini на DB-сервере, но это также все, что я сделал, поскольку мне сказали, что это должно работать из коробки. Поскольку я впервые работаю с подготовленными утверждениями, в каком-то месте может быть простая ошибка опечатки.

Ответы [ 3 ]

16 голосов
/ 26 июня 2011

Проблема в том, что MySQLi принимает порт не как часть имени хоста, а как отдельный параметр.Поэтому я думаю, что именно так вы должны открыть свое соединение:

$connection = new mysqli("myhost.com", "myUser", "myPwd", "myDB", "3306");

Или, возможно, вообще не указывать порт, потому что 3306 - это значение по умолчанию.

1 голос
/ 26 июня 2011

Проверьте привилегии для вашего пользователя ('myUser') в базе данных.Убедитесь, что привилегии разрешают соединения через «%» (или только ваш IP), а не только «localhost» (127.0.0.1).Затем убедитесь, что вы «перезагрузили Priviliges».

BlockquoteNote: phpMyAdmin получает привилегии пользователей непосредственно из таблиц привилегий MySQL. Содержимое этих таблиц может отличаться от привилегий, которые использует сервер, если они былиизменено вручную. В этом случае вам необходимо перезагрузить права, прежде чем продолжить.

0 голосов
/ 26 июня 2011

mysqli не может найти сервер базы данных, вам нужно убедиться, что домен и номер порта указаны правильно

...