|
|
|
| Здравствуйте.
Помогите пожалуйста разобраться в чём причина.
Код.
include "config_84.php"; // подключений к базе данных
$query = 'SELECT content, date_s' .
' FROM ft_news24' .
' WHERE content' .
' LIKE 1';
echo "<b>Запрос 1: $query</b></br>";
$result = mysql_query($query);
echo "<pre>";
while ($outResult = mysql_fetch_assoc($result)) {
print_r($outResult);
}
echo "</pre>";
echo mysql_error();
$varsearch = "%many%";
$query = 'SELECT content, date_s' .
' FROM ft_news24' .
' WHERE content' .
' LIKE ' . $varsearch;
echo "<b>Запрос 2: $query</b></br>";
$result = mysql_query($query);
echo mysql_error();
echo "<pre>";
while ($outResult = mysql_fetch_assoc($result)) {
print_r($outResult);
}
echo "</pre>";
?>
|
Запрос 1 выводит:
Array
(
[content] => 1
[date_s] =>
)
Array
(
[content] => 1
[date_s] =>
)
|
Запрос 2 выводит:
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 '%many%' at line 1
|
Если убрать % в $varsearch , выводит:
Unknown column 'many' in 'where clause'
Где надо подкрутить что бы осуществлялся поиск по столбцу?
---------
В столбце сontent таблицы ft_news24 текст many есть. | |
|
|
|
|
|
|
|
для: ВысотНик
(28.09.2009 в 17:30)
| | Если не сложно, выведите запрос $query в окно браузера - как он выглядит? | |
|
|
|
|
|
|
|
для: cheops
(28.09.2009 в 17:38)
| | Запрос 1: SELECT content, date_s FROM ft_news24 WHERE content LIKE 1
Запрос 2.1 : SELECT content, date_s FROM ft_news24 WHERE content LIKE %many%
Запрос 2.2 (без %) : SELECT content, date_s FROM ft_news24 WHERE content LIKE many | |
|
|
|
|
|
|
|
для: ВысотНик
(28.09.2009 в 17:41)
| | И что , по Вашему, означают LIKE %many% и LIKE many ?
Интересно, вот чуть рядом Вы пишете echo "</pre>"; а не echo </pre> ;
Почему, интересно... | |
|
|
|
|
|
|
|
для: Trianon
(28.09.2009 в 17:45)
| | Спасибо, что напомнили, что надо кавычки ставить.
=) | |
|
|
|
|
|
|
|
для: ВысотНик
(28.09.2009 в 17:41)
| | Нужно заключить конструкцию в кавычки %many%
SELECT content, date_s FROM ft_news24 WHERE content LIKE '%many%'
|
| |
|
|
|
|
|
|
|
для: cheops
(28.09.2009 в 17:50)
| | предварительно проэскейпив её содержимое.
И по совести рассуждая, не через mysql_escape_string, а чем-то самописным, что и проценты и подчеркивания тоже проэскейпит. | |
|
|
|
|
|
|
|
для: Trianon
(28.09.2009 в 17:53)
| | В принципе переменная статичная и не содержит элементов, которые нужно экранировать
Но лучше, да, даже такие переменные пропускать через экранирование - это позволит избежать трудноулавливаемых ошибок в дальнейшем, когда это значение может быть изменено. | |
|
|
|
|
|
|
|
для: cheops
(28.09.2009 в 17:56)
| | так это она в этом примере статическая. Чтоб вопрос задать.
В боевом варианте - динамической будет. | |
|
|
|
|
|
|
|
для: Trianon
(28.09.2009 в 17:57)
| | Это тренировочный скрипт.
Без дальнейшего развития.
Смотрю, как работает.
В рабочих условиях всё экранируется и проверяю.
Но за совет «самописным», спасибо. | |
|
|
|