|
|
|
не отрабатывает запрос
|
|||
|---|---|---|---|
|
#18+
возможно туплю, но: есть база, в полях присутствуют служебные символы, есть запрос: SELECT * FROM `".$basecurrent."`.`".$baseprefix."books` WHERE LCASE(`authors`) LIKE LCASE('%".mb_strtolower(mysql_real_escape_string($_SESSION['author']),'utf-8')."%')" на пыхе уже тупо продублировал lowercase если в поле authors в тексте присутствует ', то запрос не работает и выдает 0 строк в чем косяк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 18:54:56 |
|
||
|
не отрабатывает запрос
|
|||
|---|---|---|---|
|
#18+
В том, что кто-то не читает справку, раздел "Строковые литералы". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 19:01:27 |
|
||
|
не отрабатывает запрос
|
|||
|---|---|---|---|
|
#18+
AkinaВ том, что кто-то не читает справку, раздел "Строковые литералы". <Для символа "'" внутри строки, заключенной в двойные кавычки, не требуется специальной обработки> и как мне рассматривать запрос исходя из вызова из пыха? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 19:07:34 |
|
||
|
не отрабатывает запрос
|
|||
|---|---|---|---|
|
#18+
alexgluker, Сначала соберите весь запрос, потом (до отправки его в MySQL) выведите его для отладки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 19:56:05 |
|
||
|
не отрабатывает запрос
|
|||
|---|---|---|---|
|
#18+
делал, все корректно, без ошибок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2013, 12:06:37 |
|
||
|
не отрабатывает запрос
|
|||
|---|---|---|---|
|
#18+
alexgluker, тогда описывайте задачу подробнее, в т.ч. покажите данные, которые не обнаруживает запрос и сам запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2013, 12:16:09 |
|
||
|
не отрабатывает запрос
|
|||
|---|---|---|---|
|
#18+
запись в поле authors Кетлин О'Брайен mysql_query("SELECT * FROM `".$basecurrent."`.`".$baseprefix."books` WHERE LCASE(`authors`) LIKE LCASE('%".mb_strtolower(($_SESSION['author']),'utf-8')."%')") or die(mysql_error()); ошибки не выдается, mysql_num_rows возвращает 0 строк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2013, 12:27:04 |
|
||
|
не отрабатывает запрос
|
|||
|---|---|---|---|
|
#18+
miksoftalexgluker, Сначала соберите весь запрос, потом (до отправки его в MySQL) выведите его для отладки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2013, 12:37:24 |
|
||
|
не отрабатывает запрос
|
|||
|---|---|---|---|
|
#18+
alexglukerзапись в поле authors Кетлин О'Брайен mysql_query("SELECT * FROM `".$basecurrent."`.`".$baseprefix."books` WHERE LCASE(`authors`) LIKE LCASE('%".mb_strtolower(($_SESSION['author']),'utf-8')."%')") or die(mysql_error()); ошибки не выдается, mysql_num_rows возвращает 0 строк А куда mysql_real_escape_string делась? Теперь то у Вас эта кавычка не экранирована. На практике лучше не писать такую кашу в mysql_query, а записывать результат выполнения этой "каши" в переменную (например $query) и уже её передавать в функцию... Об этом и говорили, сначала запрос полностью собрать... а потом написать echo $query; или как там Ваша переменная зваться будет, и посмотреть что там получилось... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2013, 14:12:32 |
|
||
|
не отрабатывает запрос
|
|||
|---|---|---|---|
|
#18+
итак, еще раз база innodb utf8, в базе единственная запись с указанным автором в пыхе кодировка mb_internal_encoding('UTF-8') запрос SELECT * FROM `".$basecurrent."`.`".$baseprefix."books` WHERE LCASE(`authors`) LIKE LCASE('%".mysql_real_escape_string($_SESSION['author'])."%') в sql запрос попадает строка Код: sql 1. возвращает 0 строк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 09:44:21 |
|
||
|
не отрабатывает запрос
|
|||
|---|---|---|---|
|
#18+
alexglukerв sql запрос попадает строка Код: sql 1. возвращает 0 строкЭтот запрос вообще выполниться не должен, в нем синтаксическая ошибка. Должно быть так: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 10:07:12 |
|
||
|
не отрабатывает запрос
|
|||
|---|---|---|---|
|
#18+
miksoftalexglukerв sql запрос попадает строка Код: sql 1. возвращает 0 строкЭтот запрос вообще выполниться не должен, в нем синтаксическая ошибка. Должно быть так: Код: sql 1. логически это верно, но запрос то отрабатывает, только возвращает пустоту, страница не падает и прогружаеца полностью, or die(mysql_error()) присутствует конструкций try нет, почему тогда mysql_query не вываливаеца по ошибке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 10:18:28 |
|
||
|
не отрабатывает запрос
|
|||
|---|---|---|---|
|
#18+
alexglukerпочему тогда mysql_query не вываливаеца по ошибкеОткуда ж нам знать? Мы видим только то, что Вы нам показываете, не более того. Возможно, что кавычку Вы таки где-то экранируете, а нам показываете без экранирования. А записи не выводятся еще по какой-то причине, например, из-за кодировки. Покажите вывод такого запроса: Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 10:31:11 |
|
||
|
не отрабатывает запрос
|
|||
|---|---|---|---|
|
#18+
miksoftalexglukerпочему тогда mysql_query не вываливаеца по ошибкеОткуда ж нам знать? Мы видим только то, что Вы нам показываете, не более того. Возможно, что кавычку Вы таки где-то экранируете, а нам показываете без экранирования. А записи не выводятся еще по какой-то причине, например, из-за кодировки. Покажите вывод такого запроса: Код: sql 1. 2. 3. работает ( глобальная обработка всех входящих пост гет запросов присутствует, в том числе и mysql_real_escape_string ушел смотреть кто экранирует 2 и более раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 10:42:22 |
|
||
|
не отрабатывает запрос
|
|||
|---|---|---|---|
|
#18+
alexglukermiksoftпропущено... Этот запрос вообще выполниться не должен, в нем синтаксическая ошибка. Должно быть так: Код: sql 1. логически это верно, но запрос то отрабатывает, только возвращает пустоту, страница не падает и прогружаеца полностью, or die(mysql_error()) присутствует конструкций try нет, почему тогда mysql_query не вываливаеца по ошибке Возможные варианты: 1. "в sql запрос попадает строка" - реально туда попадает нечто другое, а то что Вы нам написали - это то, что Вы подумали, туда должно попасть. 2. Неверно установлена кодировка php->mysql->php. Ну то есть php отправляет строку в utf, а mysql принимает cp1251 или ещё в какой. Решается настройкой сервера или просто выполнением запроса SET NAMES 'utf8' в первом запросе из скрипта к базе (хотя странно, так как одинарная кавычка скорее всего оставалась бы одинарной кавычкой в любом случае) 3. То, что Вы представляете как одинарная кавычка реально таковой не является, а есть неким похожим символом на данный. Ну там какая-нить косая кавычка или типа того. Это то, что в голову пришло. P.S. LCASE('%Кетлин О\'Брайен%') а тут LCASE не лишний? Насколько я помню LIKE проводит регистронезависимую проверку... или я ошибаюсь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 10:57:52 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38508390&tid=1835503]: |
0ms |
get settings: |
5ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
78ms |
get tp. blocked users: |
2ms |
| others: | 205ms |
| total: | 372ms |

| 0 / 0 |
