PDO插入数据库无法正常工作

时间:2015-12-07 02:30:11

标签: php sqlite pdo

当我输入将插入数据库的信息时,我收到此错误:

  

致命错误:在非对象上调用成员函数execute()。

第14行出现问题这是我目前的代码。

$database_file = 'sqlite:inventory.sqlite';
$mysql = new PDO($database_file);

$new_name = $_POST['Name_Item'];
$new_amount = $_POST['Amount_Item'];
$new_detail = $_POST['Description'];


$query =$mysql->prepare("INSERT INTO Items (id, Name, Amount, Detail)
VALUES (''," . $new_name . "," . $new_amount . ",". $new_detail .")");
$query->execute();
echo "testing";
echo "<TABLE>";
echo "<tr>";
echo "<td>id</td>";
echo "<td>Name</td>";
echo "<td>Amount</td>";
echo "<td>Detail</td>";
echo"</tr>";
while ($row = $query->fetch()) {
    //print_r($row);
    echo "<tr>";
    echo "<td>$row[id]</td>";
    echo "<td>$row[Name]</td>";
}

1 个答案:

答案 0 :(得分:0)

问题可能是您需要引用名称和详细信息值。

这是解决问题的一种方法:

$query =$mysql->prepare("INSERT INTO Items (Name, Amount, Detail)
  VALUES (:name, :amount, :detail)");
$query->execute(['name' => $new_name, 'amount' => $new_amount, 'detail' => $new_detail]);

您也可以将名称和详细信息封装在引号中,但这不是一个好方法,因为如果它们中包含引号则会中断。

此外,在大多数情况下,id由数据库分配。