2014-07-09 137 views
-2

我在這裏要做的是 對評論的評論,如Facebookm,但它不會插入,並且它不會獲取c_id & mem_id。不會插入數據庫(對評論發表評論)

它需要獲取[c_id from blog]和[mem_id from blog_users]然後INSERT INTO blog_subcomments。

我只是想知道爲什麼它沒有插入。

if (isset($_POST['s_comment'])&& 
    isset($date)) 
{ 
$s_comment = get_post('s_comment'); 
date_default_timezone_set("Asia/Kuala_Lumpur"); 
$date = date('d/m/Y h:ia'); 
$query = "INSERT INTO blog_subcomments (sub_id,s_comment,user_id,comment_id)SELECT c_id,mem_id FROM blog,blog_users VALUES" . 
"('','$s_comment','mem_id','c_id','$date')"; 
if (!mysql_query($query, $db_server)) 
echo "INSERT failed: $query<br />" . 
mysql_error() . "<br /><br />"; 
} 

表結構

博客(該表是所有主要評論)
作者|日期|評論|電子郵件| c_id

blog_subcomments(此表是您對評論發表評論的地方(博客))
sub_id | s_comment | user_id | COMMENT_ID | date_commented

blog_users(這是所有用戶數據)
mem_id名電子郵件PW

+1

「將不插入」 不是一個診斷錯誤,我們可以幫助你。你正在使用不推薦使用的'mysql_query'接口,它只會導致你陷入一個麻煩的世界。你應該真的像[Laravel](http://laravel.com/)一樣使用[開發框架](http://codegeekz.com/best-php-frameworks-for-developers/),而不是僅僅粉碎20世紀90年代風格的PHP代碼就是這樣並希望它能夠工作同樣值得注意的是,MySQL的INSERT並不像你在這裏那樣工作。 – tadman

回答

0

,因爲要傳遞的參數不匹配

$query = "INSERT INTO blog_subcomments (sub_id,s_comment,user_id,comment_id)SELECT c_id,mem_id FROM blog,blog_users VALUES" ."('','$s_comment','mem_id','c_id','$date')"; 

提供沒有按字段名沒有日期,字段值確實有日期。因此,我們有2個變通

$query = "INSERT INTO blog_subcomments (sub_id,s_comment,user_id,comment_id,<date_field_name>)SELECT c_id,mem_id FROM blog,blog_users VALUES" ."('','$s_comment','mem_id','c_id','$date')"; 

2.

$query = "INSERT INTO blog_subcomments (sub_id,s_comment,user_id,comment_id)SELECT c_id,mem_id FROM blog,blog_users VALUES" ."('','$s_comment','mem_id','c_id')"; 
+1

是的,你是正確的@serakfalcon,但它的可選。我這樣運行它,並給出結果 –

+0

是的,我注意到並刪除了我的評論。它仍然讓我感到害怕。 – serakfalcon