2014-07-03 5 views
-2

Хорошо, это кажется глупым, и я чувствую себя глупо, чтобы спросить, но я некоторое время смотрел, и я понятия не имею, о чем говорят ответы;Не могу подключиться к удаленной базе данных mysql по php

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

<?php 
// Connecting to the db 
$con = mysqli_connect("166.**.*.**","username","password","MyDb"); 

// Check connection 
if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

echo "Con successful"; 

// Reach the table "demo" 
$result = mysql_query("SELECT * FROM demo"); 

while($row = mysql_fetch_array($result)) 
{ 
    echo $row['Title']." ".$row['Description']." ".$row['Link']; 
} 

// Close connection 
mysqli_close($con); 
?> 

И вот результат:

Con успешно Предупреждение: mysql_query() [function.mysql -query]: Не удается подключиться к локальному серверу MySQL через сокет '/var/lib/mysql/mysql.sock' (2) в /home/content/83/11483383/html/Перцептивный ум новый/php /page-builder/portfolio.php в строке 13

Предупреждение: mysql_query() [function.mysql-запрос]: Ссылка на сервер не может быть установлен в/главная/содержание/83/11483383/html/Перцептивная ум новый/PHP/страница-строитель/portfolio.php на линии 13

Предупреждение: mysql_fetch_array() ожидает параметр 1, чтобы быть ресурсом, логический, приведенные в/главная/содержание/83/11483383/html/Перцептивная ум новый/PHP/страница-строитель/портфель. php on line 15

+5

** Ahem **, вы смешиваете API-интерфейсы MySQL, они не ** смешивают. Ром и кокс делают, но не это. –

+0

Вы перепутали 'mysql_ *', который вы больше не должны использовать, потому что он устарел и все еще поддерживается' mysqli'. Преобразуйте все в 'mysqli'. – TiMESPLiNTER

ответ

3

Вы начинаете путем открытия подключения к удаленной базе данных с mysqli_ библиотеки.

Затем вы пытаетесь запросить его, используя устаревшую библиотеку mysql_.

документация для этой функции говорит:

Если идентификатор не указан, последнее соединение, открытое mysql_connect() предполагается. Если такой ссылки не обнаружено, она попытается создать такую, как если бы mysql_connect() был вызван без аргументов. Если соединение не установлено или не установлено, генерируется ошибка уровня E_WARNING.

Две библиотеки несовместимы. Поскольку вы не открыли соединение, используя mysql_, он пытается открыть его (по умолчанию использовать localhost через сокет) и не работает.

Будьте внимательны относительно библиотеки, которую вы используете. Придерживайтесь mysqli_ повсюду.

Смежные вопросы