Php 由于某些原因,无法对insert进行多个注释

Php 由于某些原因,无法对insert进行多个注释,php,sql-insert,Php,Sql Insert,我已经为我的画廊做了一个评论部分,但不确定为什么我只能对它做一个评论,那么它就不允许我对该项目执行任何更多的评论 插页 public function insertComment() { if(!get_magic_quotes_gpc()) { $this -> sanitizeInput(); } extract($_POST); $name = $_SESSION['userName']; $commen

我已经为我的画廊做了一个评论部分,但不确定为什么我只能对它做一个评论,那么它就不允许我对该项目执行任何更多的评论

插页

public function insertComment() {
    if(!get_magic_quotes_gpc()) {
        $this -> sanitizeInput();   
    }        
    extract($_POST);

    $name = $_SESSION['userName'];
    $comment = $_POST['comment'];
    $productID = $_GET['id'];

    echo $name;
    echo $comment;
    echo $productID;


    $qry = "INSERT INTO comments VALUES (NULL, '$name', '$comment', '$productID' )";

    $rs = $this -> db -> query($qry);

    if($rs && $this -> db -> affected_rows > 0) {
        $msg = 'comment record created. ';
        } else {
        echo 'Error inserting comment';
    }
    return $msg;      
}
桌子

Field   Type    Collation   Attributes  Null    Default Extra   Action
    id  int(11)         No  None    auto_increment                          
    name    varchar(150)    latin1_swedish_ci       No  None                                 
    comment varchar(150)    latin1_swedish_ci       No  None                                 
    productID   int(11)         No  None
也许这会奏效

$qry = "INSERT INTO comments (name, comment, productID) VALUES ('$name', '$comment', '$productID' )";

删除空值

永远不要使用
extract()
。这是一种极为懒惰的编码方式,它复制了php内置的许多非常愚蠢的东西。即:register_globals。你也容易受到攻击。你在哪里看过
摘录
的东西?15年来,这种技术被认为是不安全的。请注意,黑客可以通过在帖子中添加字段来覆盖脚本中的变量。不应该被使用!可能是productID上的唯一索引?获取\u magic\u quotes\u gpc,提取!!!您需要担心的事情比您的bug还要多`……不要将NULL作为id插入,而是在insert语句中指定要插入的列:insert INTO comments(名称、注释、产品id)值(?,?)-并使用PDO。