Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Проблема с MySQL: supplied argument is not a valid MySQL-Link resource

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Проблема с MySQL: supplied argument is not a valid MySQL-Link resource
Имя
Сообщение << Старые топики   Новые топики >>
Проблема с MySQL: supplied argument is not a valid MySQL-Link resource - 2008-07-17 09:25:57.906666   
t3rmin41

Сообщений: 245
Оценки: 0
Присоединился: 2007-11-12 14:06:01.393333
Вот скрипт:

&lt;?php $link = mysql_connect("127.0.0.1", "root"); if ($link = 0) { echo "Не удалось подключится к серверу"; } else { echo "Соединение создано успешно"; } mysql_close($link); ?&gt;
Вот результат:

Соединение создано успешно [b]Warning[/b]: mysql_close(): supplied argument is not a valid MySQL-Link resource in [b]C:\EasyPHP2\www\mysql.php[/b] on line [b]18[/b]
Я так понимаю, что PHP не может создать переменную типа resource, чтобы передать её в mysql_close, что примечательно, если написать  mysql_close(mysql_connect("127.0.0.1", "root")); то warning'а не даёт. В чём проблема и как сделать, что ошибки не выдавало?
Post #: 1
RE: Проблема с MySQL: supplied argument is not a valid MySQL-Link resource - 2008-07-17 09:37:26.296666   
synik

Сообщений: 94
Оценки: 0
Присоединился: 2007-08-15 14:58:32.516666
$linkID = mysql_connect("путь","login", "pass")
or exit("Could not connect");
Post #: 2
RE: Проблема с MySQL: supplied argument is not a valid MySQL-Link resource - 2008-07-17 09:51:51.580000   
t3rmin41

Сообщений: 245
Оценки: 0
Присоединился: 2007-11-12 14:06:01.393333
Ну и что? Проблема-то в mysql_close(); а не в mysql_connect(); Судя по появляющемуся
Соединение создано успешно
mysql_connect(); работает нормально
Post #: 3
RE: Проблема с MySQL: supplied argument is not a valid MySQL-Link resource - 2008-07-17 10:22:20.640000   
L1kvID

Сообщений: 118
Оценки: 0
Присоединился: 2005-07-04 19:00:21
&lt;? function connect($data_base) { $connection=mysql_connect ("host","user","pass"); if (!($connection)) {echo "Не удалось подключится к БД"} else {mysql_select_db($data_base);return $connection} } Для примера просто.
По теме: http://ru2.php.net/mysql_close
Исходя из описания : bool mysql_close ([ resource $link_identifier ] ), все должно работать. Попробуй в случае моего скрпипта сделать mysql_close или используй функцию без параметров, у тебя же одно соединение с бд в примере.
Post #: 4
RE: Проблема с MySQL: supplied argument is not a valid MySQL-Link resource - 2008-07-17 10:31:57.656666   
t3rmin41

Сообщений: 245
Оценки: 0
Присоединился: 2007-11-12 14:06:01.393333
Кажется, я понял, в чём загвоздка. В моём примере есть строка

if ($link = 0)
и PHP автоматически даёт переменной $link тип int, а не resource, который нужен mysql_close();

UPDATE:

Так оно и есть. Как вариант выхода из ситуации, через резервную переменную, такой код:

&lt;?php $link = mysql_connect("127.0.0.1", "root"); $dbh=$link; if ($dbh = 0) { echo "Не удалось подключится к серверу"; } else { echo "Соединение создано успешно"; } mysql_close($link); ?&gt;
Post #: 5
RE: Проблема с MySQL: supplied argument is not a valid MySQL-Link resource - 2008-07-17 11:16:54.906666   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
t3rmin41, проблема в другом.
Идем в мануал http://ru2.php.net/mysql_connect и видим
quote:

Возвращает указатель на соединение с MySQL в случае успешного выполнения, или FALSE при неудаче.

Ты не очень понимаешь своего алгоритма.
1. $link = mysql_connect("127.0.0.1", "root");
После выполнения этой строки $link == false
2. if ($link = 0)
Ты используешь оператор присвоения, вместо оператора сравнения.
Если бы ты использовал == все равно условие бы выполнилось, тк из-за переопределения типов false превратился бы в ноль.
3. mysql_close($link);
Ты вызываешь эту функцию не зависимо от подключен ли ты к базе или нет. А это не правильно, тк $link не является ресурсом.
Правильный код:
&lt;?php $link = mysql_connect("127.0.0.1", "root"); if ($link === false) { die("Не удалось подключится к серверу"); } else { echo "Соединение создано успешно"; } mysql_close($link); ?&gt;
Post #: 6
RE: Проблема с MySQL: supplied argument is not a valid MySQL-Link resource - 2008-07-17 12:07:07.016666   
t3rmin41

Сообщений: 245
Оценки: 0
Присоединился: 2007-11-12 14:06:01.393333
вот чёрт, и то правда. Спасибо! :]
Post #: 7
RE: Проблема с MySQL: supplied argument is not a valid MySQL-Link resource - 2008-07-17 12:07:15.140000   
FriLL

Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
А вот так прокатит??

&lt;?php $link = mysql_connect("127.0.0.1", "root"); if (!$link) { die("Не удалось подключится к серверу"); } else { echo "Соединение создано успешно"; } mysql_close($link); ?&gt;
Post #: 8
RE: Проблема с MySQL: supplied argument is not a valid MySQL-Link resource - 2008-07-17 12:10:57   
t3rmin41

Сообщений: 245
Оценки: 0
Присоединился: 2007-11-12 14:06:01.393333
quote:

ORIGINAL: FriLL

А вот так прокатит??

&lt;?php $link = mysql_connect("127.0.0.1", "root"); if (!$link) { die("Не удалось подключится к серверу"); } else { echo "Соединение создано успешно"; } mysql_close($link); ?&gt;


Прокатит, просто я поставил = вместо == вот и вся беда.
Post #: 9
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Проблема с MySQL: supplied argument is not a valid MySQL-Link resource







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.