PDO插入问题

时间:2012-11-15 18:44:18

标签: php pdo

我用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 varibales并调用函数时,它可以工作。即使使用前两个变量也可以。只有最后一个($ array2)似乎有一个“bug”。

1 个答案:

答案 0 :(得分:1)

您正在插入字符串,这意味着您的查询已经出现

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

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

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

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

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

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