LINUX.ORG.RU

Экранировать переменную двойными кавычками?

anonymous
()
Ответ на: комментарий от BigAlex

>> Ложу

Кладу. (Ну вы даете)


Автору покласть на это :)

KRoN73 ★★★★★
()
Ответ на: комментарий от isden

mysql_query(«INSERT INTO posts VALUES
(",'$title','$category','$post')»);

И что интересно, спотыкается не на всех кусках, и, похоже, не на этом символе. У меня в папке лежат n html-файлов, я их file_get_contents, распарсиваю и кладу в базу (перед этим фильтрую - комментарии, лишние теги). Но даже когда убираю фильтровалки, ошибка имеет место быть.

Но вот странность - когда не распарсиваю ничего, просто file_get_contents и в базу, то ошибка пропадает. Но! Возникает дальше, с другим файлом. Все файлы идентичны, парсились они с сайта с одним шаблоном для внутренних страниц...

NiggasLife
() автор топика
Ответ на: комментарий от NiggasLife

> mysql_query(«INSERT INTO posts VALUES
(",'$title','$category','$post')»);

охох..

mysql_query(«INSERT INTO posts VALUES (",'». $title . «','» . $category . «','» . $post . «')»);

isden ★★★★★
()
Ответ на: комментарий от NiggasLife

а если вот так:

$sql = «INSERT INTO posts VALUES (",'» . $title . «','» . $category . «','» . $post . «')»;
mysql_query($sql);

?

ЗЫ: щас попробовал локально запросы с ' - все отлично отрабатывает.
если не поможет - попробуй еще ради проверки запрос напрямую в MySQL выполнить.

isden ★★★★★
()
Ответ на: комментарий от NiggasLife

кстати, попробуй еще вот так класть:

$post = «'».addslashes($post).«'»;
$title = «'».addslashes($title).«'»;
$category = «'».addslashes($category).«'»;
$sql = «INSERT INTO posts VALUES (",'» . $title . «','» . $category . «','» . $post . «')»;
mysql_query($sql);

и выкинуть временно mysqli_real_escape_string();

сорри за быдлокод, на коленке написал.

isden ★★★★★
()

1) Попробуйте addslashes, я про mysql_real_escape_string первый раз слышу. Хотя может и использую, если он в AdoDB есть;

2) Проверьте внимательно кодировки: кодировка работы с базой (set names ...), кодировка работы в парсерах (mb_internal_, preg_XXX(/.../u)). Последнее может приводит к очень интересным эффектам;

3) Прежде вызова SQL выведете его и внимательно посмотрите;

4) Скорее всего тупите.

Pavel_7c0
()
Ответ на: комментарий от isden

> ЗЫ: щас попробовал локально запросы с ' - все отлично отрабатывает.

Вы упоролись? К чему пробовать, если это и так ясно как божий день?

Pavel_7c0
()
Ответ на: комментарий от Pavel_7c0

> К чему пробовать, если это и так ясно как божий день?

да меня вот сомнения начали терзать после поста ТСа.. ну а вдруг? :)

isden ★★★★★
()
Ответ на: комментарий от isden

> $post = «'».addslashes($post).«'»;

$title = «'».addslashes($title).«'»;

$category = «'».addslashes($category).«'»;


$sql = «INSERT INTO posts VALUES (",'» . $title . «','» . $category . «','» . $post . «')»;



лишние кавычки кстати. последнюю строчку нужно заменить.

isden ★★★★★
()
Ответ на: комментарий от isden

> $sql = «INSERT INTO posts VALUES (",'» . $title . «','» . $category . «','» . $post . «')»;

лишние кавычки кстати. последнюю строчку нужно заменить.

А запятая первая не лишняя??

Pavel_7c0
()
Ответ на: комментарий от Pavel_7c0

> А запятая первая не лишняя??

там две одинарных кавычки, пустое значение в ячейку.

isden ★★★★★
()

mysql_query(«INSERT INTO `posts` VALUES (", '$title', '$category', \»$post\");");

может так?

anonymous
()

Прочитал тему. Смеялся.

r_asian ★☆☆
()
Ответ на: комментарий от shapka

Кто не использует prepared queries, тот лох.

Кто называет prepared statements препаред квериеями - лох вдвойне.

PS: Хотя базовый посыл в принципе верный.

bibi
()
Ответ на: комментарий от isden

спаситель :) спасибо, так работает и не ругается =)

NiggasLife
() автор топика

Что только не делают люди, лишь бы не использовать PDO.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.