|
Помогите с MySQL запросом и кодировкой ( Осторожно PHP код! ) | ☑ | ||
---|---|---|---|---|
0
D_Pavel
04.09.15
✎
09:38
|
mysqli_query($link, "set character_set_results='UTF8'");
mysqli_query($link, "set character_set_client='UTF8'"); $res = mysqli_query($link, "SELECT * FROM `kladr` WHERE id = 1564 ");//AND city = '$city' "); $row=$res -> fetch_assoc(); print_r ( $row['city'] == $city ); // выдает 1, то есть они равны !!!!! если добавить условие " AND city = '$city'", то запрос ничего не находит. Почему так и как исправить? |
|||
1
beaver1971
04.09.15
✎
09:43
|
а что в PHP происходит с переменными в одинарных и двойных кавычках?
|
|||
2
D_Pavel
04.09.15
✎
09:45
|
(1) Используются только двойные.
|
|||
3
D_Pavel
04.09.15
✎
09:46
|
(1) Кодировка от кавычек не зависит
|
|||
4
beaver1971
04.09.15
✎
09:46
|
(2) AND city = '$city'?
|
|||
5
D_Pavel
04.09.15
✎
09:47
|
(4) " AND city = '$city'"
|
|||
6
beaver1971
04.09.15
✎
09:47
|
+(4) по всей видимости у тебя в базе нет города с названием $city
|
|||
7
salat-production
04.09.15
✎
09:48
|
Какая задача то? Что должно выводиться?
|
|||
8
D_Pavel
04.09.15
✎
09:48
|
(6) Есть. Если текст запроса вывести на экран, потом его скопировать в phpMyAdmin, то запрос срабатывает правильно.
|
|||
9
D_Pavel
04.09.15
✎
09:50
|
(7) Запрос с условием по городу должен был выдать ту же самую запись что и без условия.
|
|||
10
salat-production
04.09.15
✎
09:50
|
И что это вообще за муть?)) Что ты хотел этим проверить?
print_r ($row['city'] == $city) Может быть: <? $row['city'] == $city ? print_r ('Идентичны') : print_r('Не совпадают'); ?> |
|||
11
D_Pavel
04.09.15
✎
09:51
|
(10) Да, именно это и хотел проверить. Они идентичны.
|
|||
12
D_Pavel
04.09.15
✎
09:51
|
Почему муть? Просто более короткая запись, для отладки сгодится
|
|||
13
beaver1971
04.09.15
✎
09:54
|
(9)
$gorod = 'Moscow'; $gr1 = "$gorod"; $gr2 = '$gorod'; $gr1 = $gr2?????? $res = mysqli_query($link, "SELECT * FROM `kladr` WHERE id = 1564 AND city = '" . $city . "'"); |
|||
14
salat-production
04.09.15
✎
09:58
|
У тебя класс мускула исключения выбрасывает?
Если нет, вывеби через try catch. Что дебаг говорит? Лично мне например из вопроса ничего не ясно, кроме того, что запрос не проходит из функции, а из майадмина все ок. |
|||
15
salat-production
04.09.15
✎
10:04
|
И зачем кодировку в двух запросах втыкать, достаточно одного при подключении к базе.
mysqli_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'"); |
|||
16
D_Pavel
04.09.15
✎
10:05
|
(14) Нет никаких исключений, просто в условии город не в той кодировке, а как ее задать правильно не знаю.
|
|||
17
D_Pavel
04.09.15
✎
10:09
|
(13) Я же писал уже, в двойных кавычках надо, а у тебя в одинарных.
Вместо: $gr2 = '$gorod'; Сделай так: $gr2 = "'$gorod'"; получится $gr2 = "'Moscow'" В общем ты мне не то пишешь. |
|||
18
D_Pavel
04.09.15
✎
10:09
|
(15) Спасибо, помогло. Куда деньги слать?
Темку можно закрыть. |
|||
19
beaver1971
04.09.15
✎
10:25
|
(17) $gr1 = $gr2??????
|
|||
20
D_Pavel
04.09.15
✎
11:21
|
(19) ну не задавай глупых вопросов. Понятно же все
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |