2014-07-09 97 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