Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не выполняется вставка в БД 
V
    Опции темы
nextzi0
Дата 10.10.2008, 10:58 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.5.2008
Где: о. Корсика

Репутация: нет
Всего: нет



А у меня наоборот!

Код


if ($_GET['action'] == "show") {
            $link = mysql_connect($host,$user,$pwd);
            mysql_query("SET NAMES 'cp1251'",$link);
            mysql_select_db($dbname);
            $qry = "SELECT * FROM files";
            $res = mysql_query($qry,$link);
            
            while ($row = mysql_fetch_array($res)){...}



Ругается на строку while ($row = mysql_fetch_array($res)){...} 
 пишет: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

=( Ведь все верно написано мною
Тоесть SELECT Не хочет почему-то работать

Это сообщение отредактировал(а) nextzi0 - 10.10.2008, 11:00
--------------------
Не бойся начинать что-то новое, помни, что ковчег построили любители - профессионалы построили "Титаник"
PM MAIL ICQ   Вверх
skyboy
Дата 10.10.2008, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Цитата(nextzi0 @  10.10.2008,  09:58 Найти цитируемый пост)
Тоесть SELECT Не хочет почему-то работать

т.е. вызвать mysql_error и посмотреть, что за ошибка в запросе - не судьба? а скопировать запрос в тот же PHPMyAdmin и опять же посмотреть на текст ошибки запрещает религия? 
PM MAIL   Вверх
nextzi0
Дата 10.10.2008, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.5.2008
Где: о. Корсика

Репутация: нет
Всего: нет



Цитата(skyboy @ 10.10.2008,  12:12)
Цитата(nextzi0 @  10.10.2008,  09:58 Найти цитируемый пост)
Тоесть SELECT Не хочет почему-то работать

т.е. вызвать mysql_error и посмотреть, что за ошибка в запросе - не судьба? а скопировать запрос в тот же PHPMyAdmin и опять же посмотреть на текст ошибки запрещает религия?

вставля тот же самый запрос в пма - все ок, все работает.
ошибку нашел, в чем закономерность - не пойму:
раньше в скрипте было так:

Код

<?php
   include('data.php'); /*здесь хранятся переменные $host, $user, $pwd, $dbname и т.п.*/
   $link = mysql_connect($host,$user,$pwd);
   mysql_select_db($dbname);
   ...
?>



теперь сделал так

Код

<?php
   
   $link = mysql_connect('host','user','password');
   mysql_select_db('dbname');
   ...
?>



непонятно...
--------------------
Не бойся начинать что-то новое, помни, что ковчег построили любители - профессионалы построили "Титаник"
PM MAIL ICQ   Вверх
bars80080
Дата 10.10.2008, 14:23 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 9
Всего: 315



наверно, всё же разница есть. сдаётся мне он и не выполнял подключения к БД, а выдавал ошибку, мол пароль, логин или ещё чего не правильно. однако, ошибки видать были отключены

error_reporting(E_ALL);

вначале скрипта мог бы объяснить в чём дело


да и просто проверить, что в $host,$user,$pw надо было бы
PM MAIL WWW   Вверх
nextzi0
Дата 10.10.2008, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.5.2008
Где: о. Корсика

Репутация: нет
Всего: нет



хм странно, но показ ошибок у меня включен на всё...
может быть это как то связано с видимостью переменных и с функцией include, потому что все переменные у меня заданы и не пусты.
--------------------
Не бойся начинать что-то новое, помни, что ковчег построили любители - профессионалы построили "Титаник"
PM MAIL ICQ   Вверх
bars80080
Дата 10.10.2008, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 9
Всего: 315



ты просто их проверь, сразу после вставки в функцию mysql_connect и mysql_select_db

var_dump($login);
PM MAIL WWW   Вверх
nextzi0
  Дата 10.10.2008, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.5.2008
Где: о. Корсика

Репутация: нет
Всего: нет



Заменил include на require, все работает...
--------------------
Не бойся начинать что-то новое, помни, что ковчег построили любители - профессионалы построили "Титаник"
PM MAIL ICQ   Вверх
skyboy
Дата 10.10.2008, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Цитата(bars80080 @  10.10.2008,  13:23 Найти цитируемый пост)
error_reporting(E_ALL);

ему и возвращает
Цитата(nextzi0 @  10.10.2008,  09:58 Найти цитируемый пост)
mysql_fetch_array(): supplied argument is not a valid MySQL result resource

а вот причину того, что запрос не выполнен, возвращает mysql_error, яростно не используемый. вот и не видно причины. и игра с error_reporting выявить причину никак не поможет.
PM MAIL   Вверх
nextzi0
  Дата 10.10.2008, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.5.2008
Где: о. Корсика

Репутация: нет
Всего: нет



skyboy, посмотрел по mysql_error ошибку, немного стало ясно:
идентификатор результата запроса не возвращается, т.к. у меня в базу записывается строка с названием фильма - 
X's & O's.avi. Я думаю это из за апострофов, потому что все названия фильмов до этого фильма (в которых имена обычные, без спецсимволов) в базу записываются нормально.

запрос на запись такой:

(skiped)
mysql_real_escape_string($filename);
$rs = mysql_query("SELECT * from `files` WHERE `name` = '$filename'",$link);
(skiped)

как только $filename становится равным X's & O's.avi, запрос валится:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's & O's.avi'' at line 1
Вроде и  прослешил, что еще не так? 

Это сообщение отредактировал(а) nextzi0 - 10.10.2008, 21:05
--------------------
Не бойся начинать что-то новое, помни, что ковчег построили любители - профессионалы построили "Титаник"
PM MAIL ICQ   Вверх
bars80080
Дата 10.10.2008, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 9
Всего: 315



случаем не опечатка?

Код

$filename = mysql_real_escape_string($filename);
$rs = mysql_query("SELECT * from `files` WHERE `name` = '$filename'",$link);

PM MAIL WWW   Вверх
nextzi0
Дата 10.10.2008, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.5.2008
Где: о. Корсика

Репутация: нет
Всего: нет



Точно! Спасибо!  smile 
--------------------
Не бойся начинать что-то новое, помни, что ковчег построили любители - профессионалы построили "Титаник"
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0506 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.