删除SQL不激活 - 在非对象上调用成员函数exec()

时间:2013-06-25 15:28:46

标签: php sql

我有一个PHP脚本,它接受两个POST值,然后使用它们来查找和删除我的数据库中的一行,如下所示:

<?php
$incomingListNameD = $_POST['text'];
$incomingNewContentD = $_POST['text2'];

    //MAIN DB function for removing items

try
{
    //open the database  PDO METHOD
    $db = new PDO('sqlite:listDB.sqlite');

    $db->exec("INSERT INTO ListItems (ParentList, Content) VALUES ('Poopy', 'Ruglegs');");

    //Prepared statement version of values remove

    $qry = $db->prepare("DELETE FROM ListItems (ParentList,Content) VALUES (?,?)");
    $qry->execute(array($incomingListNameD,$incomingNewContentD));

    // close the database connection
    $db = NULL;
}
catch(PDOException $e)
{
    print 'Exception : '.$e->getMessage();
}
?>

问题是我一直收到错误:

call to a member function exec() on a non-object.

Poopy Ruglegs(不要问,只是添加了调试)行添加了所以我确实有一个工作的句柄;我的DELETE刚刚赢了。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在调用$db之前,检查exec()是否构造正确。我猜它没有正确实例化。

用于调试:

var_dump($db)

处理:

if(isset($db)) {
...
} else { 
...
}