2012-01-23 38 views
0

我不能讓我的查詢插入我的一個瓦爾正在被追加。如果我硬設置它,它會插入。Mysql INsert appened var

preg_match_all("/<\s*p[^>]*>([^<]*)<\s*\/\s*p\s*>/", $new_post, $matches); 

$article = ' '; 

foreach ($matches[0] as $media){ 
$article .= $media; 

} 

$query = "INSERT INTO blog_post (date,article,link) VALUES('$date','$article','$guid_clean')"; 
mysqli_query($dbc,$query); 

一切正常,IE我可以回顯$ article,如果我努力設置它並跳過foreach,我甚至可以插入$ article。 $ date和$ guid_clean工作正常。

+0

請告訴我們你想用'preg_match_all()'來實現什麼。另外,當查詢不成功時,'mysql_error()'告訴你什麼?由於您沒有使用'mysql_real_escape_string()',所以我在文章正文中引用了錯誤的引用。 –

+0

@Michael,他們會刪除評論。它不會對任何人有好處,並閱讀它。 THKS。 – Frankie

+0

@Michael,'preg_match_all'看起來好像只是提取出'

...

'的內容。 –

回答

2

您還沒有使用mysql_real_escape_string()轉義輸入變量,並且很可能文章正文內部的撇號或單引號中斷並使SQL語句無效。

$article = mysql_real_escape_string($article); 
// And if necessary if these came from user input... 
$guid_clean = mysql_real_escape_string($guid_clean); 
$date = mysql_real_escape_string($date); 

$query = "INSERT INTO blog_post (date,article,link) VALUES('$date','$article','$guid_clean')"; 
mysqli_query($dbc,$query); 
+0

完美的非常感謝你 – Cjueden