Php 无法使用pdo将新数据插入数据库

Php 无法使用pdo将新数据插入数据库,php,pdo,Php,Pdo,我在尝试将新数据插入数据库时遇到问题, 我甚至没有收到任何错误 $db = new MyPDO(); $datauser = array( 'account' => $acc, 'tid' => $tid, 'email' => $email, 'amount' => $amount, 'date' => 'NOW()', 'obj_id' => $object_id); $sql = $db->query("INSERT INTO acc

我在尝试将新数据插入数据库时遇到问题, 我甚至没有收到任何错误

$db = new MyPDO();
$datauser = array( 
'account' => $acc, 
'tid' => $tid, 
'email' => $email, 
'amount' => $amount, 
'date' => 'NOW()',
'obj_id' => $object_id);  
$sql = $db->query("INSERT INTO account_reg_log 
(account, tid, email, amount, date, obj_id) VALUES 
(:account, :tid, :email, :amount, :date, :obj_id)");
$sql->execute($datauser);
运行脚本后检查数据库,没有看到新行。。
您知道如何修复hat吗?

您需要准备语句,而不是直接使用占位符运行查询

更改:

$sql = $db->query("INSERT INTO account_reg_log 
(account, tid, email, amount, date, obj_id) VALUES 
(:account, :tid, :email, :amount, :date, :obj_id)");
致:


您还应该在
MyPDO
类中添加错误处理,这样PDO将抛出异常,并在出错时准确地告诉您出错的地方。

Place
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION)如果尚未打开连接,请在连接打开后立即执行。另外,在打开
之后立即将错误报告添加到文件的顶部。请注意,您还可以将错误模式属性发送到PDO构造函数,以便您也可以捕获大多数连接错误。这没有帮助,而且我在query
公共函数query($query){$args=func_get_args();array_shift($args);$reponse=parent::prepare($query);$reponse->execute($args);return$reponse;}
绘图变厚了^@EvilNabster那么为什么在
query
方法之后再次执行
?您可能需要
$this->prepare($query)
(或类似的东西),而不是
parent::prepare($query)
。正确设置错误处理将告诉您更多信息。如果需要更多帮助,您需要发布PDO包装类。@Fred ii-一个完全重新定义现有PDO方法的PDO包装类。是的,这可能会让事情变得有点复杂:-)呃…嗯,是的@jeroen有点;-)
$sql = $db->prepare("INSERT INTO account_reg_log 
(account, tid, email, amount, date, obj_id) VALUES 
(:account, :tid, :email, :amount, :date, :obj_id)");