Помощник
|
Ошибка в запросе MySQLсо второго вызова |
pingvin_hb
|
Сообщение
#1
|
||
|
|
||
|
|||
Arks |
22.6.2012, 11:33;
Ответить: Arks
Сообщение
#2
|
|
посоветую переставить mysql, или по крайней мере настроить по-другому количество подключений, размеры буфера и т.п.
В остальном посоветовать нечего - берете отладчик и смотрите что не так при повторном запуске. Ошибки особо ни о чем не говорят, кроме каких-то проблем с данными. |
|
|
pingvin_hb
|
Сообщение
#3
|
|
Во втором вызове и последующих (в отличии от первого) запрос идёт через форму (ACTION) и в параметре полный запрос: вероятно виноваты не русские буквы в запросе, а кавычки.
|
|
|
pingvin_hb
|
Сообщение
#4
|
|
Раз кавычки интерпретируются в php и запросе для MySQL по-разному (передача одиночной кавычки в виде html-сущности ´ вызывает ошибку). Тогда как в запрос передать кавычку?
|
|
|
Muxa_hb |
22.6.2012, 16:21;
Ответить: Muxa_hb
Сообщение
#5
|
|
"INSERT INTO `table` (`name`) VALUES ('\"')"; ?
|
|
|
pingvin_hb
|
Сообщение
#6
|
|
Экранирование обратной наклонной чертой в MySQL тоже вызывает ошибку, т.к. наклонная черта тоже передаётся.
|
|
|
pingvin_hb
|
Сообщение
#7
|
|
$rubriki="МОДА и СТИЛЬ";
Т.е. запрос такой: $sql = "select * from `tbl` where `rubriki`=’$rubriki’"; |
|
|
alexdrob |
22.6.2012, 16:50;
Ответить: alexdrob
Сообщение
#8
|
|
Cannot use a scalar value as an array = Ну так при чём тут MySQL? Напишите код правильно и не будет ошибки. Вы пытаетесь присвоить типа отличному от массива, элемент, и обращаетесь как к массиву. Напрмиер [PHP]$sql = "..."; $sql[] = '...'; [/PHP][] - должно добавить новый элемент. А как можно добавить элемент если там сейчас строка? апрос MySQL не валидный (Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Это не запрос не валидный. Это вы в функцию mysql_num_rows передаёте не mysql ресурс. Так как в переменной может быть false из за не удачного запроса. Так выведите mysql_error() после query И посмотрите что там пишется. а запрос и вправду обрезанный. Как вы это определили? Только по тому что вам вывело не весь запрос? И не должно весь выводить, если только вы сами не выводите черех echo например. И брать нужно не из error. вероятно виноваты не русские буквы в запросе, а кавычки. mysql_real_escape_string вам в помощь. Да и именно кавычки " - не вызывают ошибку. ошибка будет если строка запроса быдет что то типа insert .... ('...'...') но это и в пхп была бы ошибка, откуда субд знает что вы хотите их этого получить? нужно экранировать ('...\'...') Раз кавычки интерпретируются в php и запросе для MySQL по-разному В каком смысле? передача одиночной кавычки в виде html-сущности ´ вызывает ошибку не вызывает Экранирование обратной наклонной чертой в MySQL тоже вызывает ошибку, т.к. наклонная черта тоже передаётся. Вы что то там накодили не правильно. Не каких ошибок не выхывает. \' - это экранирование аппострофа. в бд будет просто ' записан если вам нужно передать аппостроф не экранированный и слешь то экранируете слешь \\' - в бд будет \' записано. СУБД не конфликтует с символами. Это вы когда запрос пишите, можете напиать что то типо Напрмиер у вас имя юзера I'm тогда запрос будет select * from table where name = '$username' представлен как select * from table where name = 'I'm' Ну и как субд должна его обработать? Она не может расставить 3 аапострофа, так как каждому открывающемуся должен и закрывающийся быть. экранирование тут select * from table where name = 'I\'m' отправит в строку в бд не I\'m а просто I'm Экранирование нужно для правильного распаривания строки. Субд дудет знать что аппостроф после слеша не нужно воспринимать как служебный символ, а просто как Char |
|
|
alexdrob |
22.6.2012, 16:51;
Ответить: alexdrob
Сообщение
#9
|
|
|
|
|
pingvin_hb
|
Сообщение
#10
|
|
"INSERT INTO `table` (`name`) VALUES ('\"')"; ?Экранируются только те кавычки, которые являются основными для строки. Ну так при чём тут MySQL? … MySQL здесь ни причём, только притом, что выводит информацию, что имеется ошибка в запросе (ведь запрос усечён). Это не запрос не валидный… Раз запрос стал усечённый, он стал не валидный. …Так выведите mysql_error() после query… У меня при любом запросе эта функция вызывается, так своя функция записана. Как вы это определили?... По виду ссылки в браузере. Вы что то там находили не правильно. Не каких ошибок не вызывает… Был вывод автоматически экранированными кавычками через php, а он передал с обратными слешами запрос в MySQL, который указал на ошибку в запросе, если в ручную делать, то ошибок не возникает. А вы между символом ’ и ' - не видите разницу? Сразу не понял. |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Каталог открывается как ошибка 404 в hostcms | 0 | cheshire | 3254 | 2.7.2018, 11:09 автор: cheshire |
|
Куплю сайт, блог. Тиц от 10, домен второго уровня | 0 | ehisod | 1037 | 6.3.2014, 22:04 автор: ehisod |
|
Продажа доменов второго уровня RU, COM, NET, ORG и т.д. |
7 | chernobog | 7797 | 31.7.2013, 7:35 автор: chernobog |
|
Учусь создавать шаблон для Joomla 2.5 Ошибка в файле index.php | 3 | Musicathome | 6626 | 26.7.2013, 20:20 автор: -Сабж- |
|
Редирект, установка консультации на сайт и ошибка в коде | 2 | samgul | 4065 | 27.2.2013, 17:22 автор: -HTMLandPHP- |
Текстовая версия | Сейчас: 29.3.2024, 0:33 |