вставка HTML в таблицу SQL

0

Я пытаюсь вставить значение в мою таблицу sql, в которой есть html: вроде

<?
$story ="<div class='post'><p class='date'>$mont<b>$day</b></p><h2    class='title'>lkjljt</h2><p class='meta'><small>Posted $name | $school, $date | Rating</small></p><div class='entry'>$message</div></div>";

$db = mysql_connect("host", "user", "password"); 
mysql_select_db("db", $db); 

 if (!$db)
  {
  die('Could not connect: ' . mysql_error());
  }

 $sql = "INSERT INTO Post VALUES ('', '$date', '$time', '$story',  '$school','$location', '$sex', '$zipcode', '$name');";

 $result = mysql_query($sql);


 if($result)
 { $success = " Your hookup has been submitted ";}
 else{
  $error = "something went horribly wrong" . mysql_error();}



 ?>

Я продолжаю получать синтаксическую ошибку, когда я отправляю эту страницу, и если я комментирую $story out, запрос выполняется нормально. Как я могу это исправить?

Теги:

2 ответа

5
Лучший ответ

Наиболее вероятная причина состоит в том, что $story содержит одинарные кавычки, которые разбивают запрос. Защитите его, используя mysql_real_escape_string

В общем, это идея bad, поскольку она открыта для SQL-инъекции.

$sql = "INSERT INTO Post VALUES ('', '$date', '$time', '$story',
       '$school','$location', '$sex', '$zipcode', '$name');";

По крайней мере, используйте mysql_real_escape_string, который защитит ввод символов, имеющих особое значение в запросе MySQL. Используйте его во всех текстовых столбцах.

$sql = "INSERT INTO Post VALUES ('', '$date', '$time', '" .
       mysql_real_escape_string($story) . "','".
       mysql_real_escape_string($school) . "','".
       mysql_real_escape_string($location) . "', '$sex', '$zipcode', '" .
       mysql_real_escape_string($name) ."');";
1

Если вы не заботились о SQL Injection (хотя я не знаю, почему бы вам не понравилось), вы также можете использовать htmlspecialchars, чтобы исправить вашу проблему. mysql_real_escape_string, очевидно, лучший выбор, хотя, как сказал @cyberkiwi

Ещё вопросы

Сообщество Overcoder
Наверх
Меню