0

我用 PDO 创建了一个新函数来在我的数据库中插入数据。

函数看起来像这样

    function insert($table,$column = array(),$value = array())
{
    $array1 = implode(",", $column);
    $array2 = implode(",", $value);

    try 
    { 
        $sql = $this->connect->query("INSERT INTO $table ($array1) VALUES ($array2)");  


    }  
    catch(PDOException $e) 
    {  
        echo $e->getMessage();  
    }  
}

以及对这样的函数的调用

-> insert('coupons',array('categorie','name','link','code','id'),array('test11','test','test','test','NULL'));

但毕竟,它似乎不起作用并且没有显示任何错误。有人对我有几点意见,我应该在哪里搜索错误?当我编写查询 /wo 变量并调用该函数时,它可以工作。即使使用前两个变量,它也可以工作。只有最后一个($array2)似乎有一个“错误”。

4

1 回答 1

1

您正在插入字符串,这意味着您的查询出来了

INSERT INTO coupons (categorie, name, ...) VALUES (test11, test, ...)

裸字符串被解释为字段/表名称,这意味着您的查询完全无效。

至少,忽略此代码的所有其他问题,修复将是

$array2 = implode("','", $value);
                   ^-^---

INSERT INTO $table ($array) VALUES ('$array2');
                                    ^--     ^--

当然,这是忽略sql注入漏洞,关键字问题,等等等等。

于 2012-11-15T18:51:25.547 回答