2014-01-20 4 views
-1

Я рассматривал это часами, и я не могу найти проблему, почему моя вставка sql не будет работать.По какой-то причине мой mysql wont insert

$body = "link test - 3!!!"; 
$userid = 1; 
$cat_id = 3; 
$user_url = "http://www.pizza.com"; 
$body = mysql_real_escape_string($body); 

$sql = "insert into posts (userid, body, stamp, cat_id, link) values ($userid,$body,now(),$cat_id,$user_url)"; 

$result = mysql_query($sql); 
+0

Ницца редактировать, @fred -ii- :) – GreenAsJade

+3

[Почему я не должен использовать mysql_ * функции в PHP?] (Http://stackoverflow.com/q/12859942/283366) – Phil

+0

Благодаря @GreenAsJade --- Одна из моих [специальностей] (http://stackoverflow.com/help/badges/223/copy-editor?userid=1415724) ;-) –

ответ

6

$body и $user_url являются строкой, но вы не процитировать.

$sql = "insert into posts (userid, body, stamp, cat_id, link) values ($userid,'$body',now(),$cat_id,'$user_url')"; 

и укажите любые другие поля, которые в этом нуждаются.

+2

Может быть, добавлено примечание, которое цитирует те, которые «могут» быть строками? Мы не знаем, являются ли 'userid' и' cat_id' VARCHAR или INT. Просто говорю. Мы не знаем, что такое схема OP. –

+0

Heres мой дб: идентификатор \t INT (11) \t \t идентификатор_пользователя \t INT (11) \t \t \t тела \t VARCHAR (140) марка \t DateTime \t \t \t cat_id \t TINYINT (1) ссылки \t VARCHAR (500) – user3195457

+0

Затем, что Муса опубликовал должно быть достаточно. @ user3195457 –

0

Вам также нужно избегать специальных символов в $ body, чтобы избежать будущих проблем.

$sql = "insert into posts (userid, body, stamp, cat_id, link) values ($userid, '".mysql_real_escape_string($body)."', '".now()."', $cat_id, '$user_url')"; 
Смежные вопросы