Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.12.02;
Скачать: [xml.tar.bz2];

Вниз

вопрос по php   Найти похожие ветки 

 
xayam ©   (2007-10-24 11:15) [0]

mysql 4.1, php 5
такой код

       $result = mysql_query("select ID_WORD from words where WORD = ".$match[0][$i]);
       $row = mysql_fetch_row($result);
       $id_wrd = $row[0];
       mysql_free_result($result);

на строках с mysql_fetch_row($result) и mysql_free_result($result) выдается ошибка:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in index.php
Подскажите что это значит? Вроде стандартная обработка.


 
Eraser ©   (2007-10-24 11:26) [1]


> xayam ©   (24.10.07 11:15) 


> select ID_WORD from words where WORD = ".$match[0][$i]

$match[0][$i] в апострафы неплохо бы загнать, т.к. возможна sql-инъекция.

> Подскажите что это значит?

это значит, что запрос false выдает скорее всего.


 
xayam ©   (2007-10-24 11:26) [2]

все спасибо разобрался
http://www.php.net/manual/ru/faq.databases.php#faq.databases.mysqlresource


 
Dmitry S ©   (2007-10-24 11:28) [3]

Кстати там же, в мане, написано, что mysql_free_result использовать не обязательно и не нужно:)


 
homm ©   (2007-10-24 11:31) [4]

> Подскажите что это значит?

Это значит, что supplied argument is not a valid MySQL result resource!


 
xayam ©   (2007-10-24 11:31) [5]

еще один вопрос.
php в какой кодировке работает, я так понял utf-8, а мне нужно windows-1251. Есть какой-нибудь конвертер?


 
homm ©   (2007-10-24 11:34) [6]

> [5] xayam ©   (24.10.07 11:31)
> php в какой кодировке работает

php в основном чхать на кодировку.


 
xayam ©   (2007-10-24 11:36) [7]


> homm ©   (24.10.07 11:34) [6]
> php в основном чхать на кодировку.

получается что не так, потому что у меня в файле windows-1251, в базе windows-1251, а php вводит в базу каракули ((. Вот нашел функцию convert_cyr_string. Она подойдет?


 
Dmitry S ©   (2007-10-24 11:37) [8]

нет, она не работает с юникодом или UTFом.

Настраивай MySQL... в документации есть решение...


 
homm ©   (2007-10-24 11:38) [9]

> [7] xayam ©   (24.10.07 11:36)

Это не кодировка рхр, это кодировка соединения с базой.
mysql_query("SET NAMES CP1251");


 
homm ©   (2007-10-24 11:41) [10]

> [7] xayam ©   (24.10.07 11:36)
> а php вводит в базу каракули

Кстати, можно не особопарится, если поделка на коленке (судя по всему это так). При доставании из базы будет обратное преобразование, и вернется тоже, что и ввел.


 
Dmitry S ©   (2007-10-24 11:42) [11]

он вводит, скорее всего, через phpmyadmin :)


 
xayam ©   (2007-10-24 11:47) [12]


> Dmitry S ©   (24.10.07 11:42) [11]
> он вводит, скорее всего, через phpmyadmin :)

нет, через скрипт, данных много. Кстати а как на хостинге выполнить этот скрипт, в 30 секунд явно не уложусь, если set_time_limit не будет работь?


 
Dmitry S ©   (2007-10-24 11:47) [13]

никак:)


 
homm ©   (2007-10-24 11:47) [14]

> [12] xayam ©   (24.10.07 11:47)
> Кстати а как на хостинге выполнить этот скрипт, в 30 секунд
> явно не уложусь, если set_time_limit не будет работь?

Доьавлять по частям, как-то отмеряя части, которые уже добавил.


 
xayam ©   (2007-10-24 12:01) [15]


> homm ©   (24.10.07 11:41) [10]
> если поделка на коленке

просто нет большого опыта программирования на php)) но я думаю справлюсь, если с кодировкой нормально будет))


 
xayam ©   (2007-10-24 17:03) [16]


> homm ©   (24.10.07 11:38) [9]
> > [7] xayam ©   (24.10.07 11:36)
> Это не кодировка рхр, это кодировка соединения с базой.
> mysql_query("SET NAMES CP1251");

странно, но это не помогает
пишу после этой строчки так

        $charset = mysql_client_encoding();
        echo $charset;

выводит - latin1_swedish_ci
Почему так?


 
homm ©   (2007-10-24 17:32) [17]

> [16] xayam ©   (24.10.07 17:03)
> странно, но это не помогает

Ты выполняешь это после коннекта к базе данных?


> странно, но это не помогает
> пишу после этой строчки так
>        $charset = mysql_client_encoding();
>        echo $charset;

Только в этом проявляется «не помогает» или действительно не помогает?


 
xayam ©   (2007-10-24 17:37) [18]


> homm ©   (24.10.07 17:32) [17]
> > [16] xayam ©   (24.10.07 17:03)
> > странно, но это не помогает
>
> Ты выполняешь это после коннекта к базе данных?

ну да конечно

> Только в этом проявляется «не помогает» или действительно
> не помогает?

ну конечно действительно, через mysql manager смотрел - одни каракули ((, хотя на базу поставил cp1251 и все таблицы


 
Dmitry S ©   (2007-10-25 04:00) [19]

попробуй еще
mysql_query("SET CHARACTER SET cp1251");


 
xayam ©   (2007-10-25 22:42) [20]


> Dmitry S ©   (25.10.07 04:00) [19]
> попробуй еще
> mysql_query("SET CHARACTER SET cp1251");

это синонимы, тоже не помогает

> homm ©   (24.10.07 11:41) [10]
> При доставании из базы будет обратное
> преобразование, и вернется тоже, что и ввел.

нет, выводит каракули ((


 
xayam ©   (2007-10-27 14:56) [21]

еще вот так попробовал

 mysql_query("SET character_set_client="cp1251"");
 mysql_query("SET character_set_results="cp1251"");
 mysql_query("SET character_set_connection="cp1251"");


тоже не помогает


 
xayam ©   (2007-10-28 13:45) [22]

Удалено модератором


 
xayam ©   (2007-11-04 16:07) [23]


> homm ©   (24.10.07 17:32) [17]

я все-таки разобрался с кодировкой - http://php-myadmin.ru/learning/mysql-cir.html
...Однако, следует заметить, что это НЕ будет работать, если пользователь, которым вы подключаетесь к базе имеет привилегию SUPER (а стандартный пользователь root к таким относится, так же как и все созданные через "GRANT ALL PRIVILEGES ON *.* TO ..."). Это сделано для того, чтобы в случае ошибки в этом запросе (а его можно изменить во время работы), хоть кто-то мог подключиться к базе и исправить его...



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2007.12.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.042 c
15-1193749434
Черный Шаман
2007-10-30 16:03
2007.12.02
Разводка кабеля питания.


15-1194178514
andreoman
2007-11-04 15:15
2007.12.02
как читать чужиее смс


15-1194259585
xayam
2007-11-05 13:46
2007.12.02
что скажите про этот хостинг


2-1194539086
Kick
2007-11-08 19:24
2007.12.02
ClientSocket, ServerSocket


2-1194706325
no3ep
2007-11-10 17:52
2007.12.02
изменение времени





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский