Предупреждение: mysql_error (): предоставленный аргумент не является допустимым ресурсом MySQL-Link

Возможный дубликат:
Предупреждение: mysql_fetch_array (): предоставленный аргумент не является допустимым результатом MySQL

$err = mysql_query("INSERT INTO tridy (id,NazevTridy,url) VALUES ( '$i', '$tridy->find('div[class=rozvrhseznam]', 0)->find('a[href]', $i)->outertext', '$tridy->find('div[class=rozvrhseznam]', 0)->find('a[href]', $i)->href')"); mysql_error($err); // line 97 

Предупреждение: mysql_error (): предоставленный аргумент не является допустимым ресурсом MySQL-Link в /hosting/www/cran-web.com/www/rozvrh/engine.php в строке 97

— строки 2-6:

 $username="*****.com"; $password="*********"; $database="*********"; mysql_connect('127.0.0.1', $username, $password) or die('Could not connect'.mysql_error()); mysql_select_db($database) or die( "Cannot select db."); 

Я получаю эту ошибку, когда пытаюсь выполнить мой запрос. Можете ли вы сказать, что означает сообщение об ошибке и как его исправить?

mysql_error() ожидает «ресурс ссылки» и нет «ресурса результата». Правильный путь – это что-то вроде:

 $username="*****.com"; $password="*********"; $database="*********"; $connection = mysql_connect('127.0.0.1', $username, $password) or die('Could not connect'.mysql_error()); mysql_select_db($database, $connection) or die( "Cannot select db."); $err = mysql_query("INSERT INTO tridy (id,NazevTridy,url) VALUES ( '$i', '$tridy->find('div[class=rozvrhseznam]', 0)->find('a[href]', $i)->outertext', '$tridy->find('div[class=rozvrhseznam]', 0)->find('a[href]', $i)->href')", $connection); mysql_error($connection); // line 97 

Обратите внимание на использование $connection . Соединение Wile $ можно отбросить повсюду, как в

 mysql_error(); 

Который использует последнее открытое соединение или открывает по умолчанию новый. Хотя в зависимости от подключения по умолчанию плохо. Вы также можете посмотреть в mysqli или PDO в качестве альтернативных способов общения с MySQL.

mysql_error ($ ERR); удалите аргумент! Он ссылается на ресурс, а не на количество ошибок.

Ссылка используется для распознавания разных подключений (вы можете получить их с помощью mysql_connect), прочитав об этом, если вам нужно больше.

Вы передаете запрос в mysql_error, вам нужно передать идентификатор ссылки.

Также помните, что mysql_query() связанный с INSERT возвращает true при успешном выполнении и false при ошибке.

Поэтому присвоение переменной $err каким-то образом вводит в заблуждение, if($err) означает отсутствие ошибки и наоборот.

Лучше:

 $success = mysq_query("INSERT...."); if(!$success) { // use of $connection is pointed to in other answers $error_msg = mysql_error($connection); // so some error handling } 

О mysql_error() :

Параметр : соединение MySQL. Если идентификатор ссылки не указан, предполагается, что последняя ссылка, открытая mysql_connect()

и возвращаемое значение:

Возвращает текст ошибки из последней функции MySQL или '' (пустая строка), если ошибка не возникла.

Таким образом, вы также делаете что-то с возвращаемым значением. Просто вызов mysql_error() бесполезен!