2014-03-06 16 views
1

我有一个PDO的问题(我是新来的)。我的代码无法将任何东西插入到表中。我尝试了所有可能的方式,我想出了将变量插入代码(数组,直接插入语句中,无论是否将NULL作为NULL插入等)。PDO与sqlite不会插入任何东西

$db = new PDO('sqlite:hpoi.sqlite'); 
$qry = $db->prepare('INSERT INTO tbl_hpoifinds (user, hpoiid) VALUES (?, ?)'); 
$qry->execute(array(NULL, $invoker, $id)); 

在此之后,该表保持为空... 当我尝试使用:

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

我得到这个错误:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 10 disk I/O error' in /DISK2/WWW/milerking.cz/dixi/projects/hpoi_plugin/hpoi.lib.php:39 Stack trace: #0 /DISK2/WWW/milerking.cz/dixi/projects/hpoi_plugin/hpoi.lib.php(39): PDOStatement->execute(Array) #1 /DISK2/WWW/milerking.cz/dixi/projects/hpoi_plugin/hpoi.lib.php(23): hpoiright('dixxcz', 'riverofslime') #2 /DISK2/WWW/milerking.cz/dixi/projects/hpoi_plugin/hpoi.lib.php(11): hpoicheck('dixxcz', 'riverofslime') #3 /DISK2/WWW/milerking.cz/dixi/projects/hpoi_plugin/hpoi.lib.php(65): hpoi('dixxcz', 'riverofslime') #4 {main} thrown in /DISK2/WWW/milerking.cz/dixi/projects/hpoi_plugin/hpoi.lib.php on line 39 

完整的代码可以发现here

+0

对不起,我犯了一个错误(没有定义第一个id),但问题仍然存在。我使用正确的错误类型编辑了帖子。 – dixi

+0

异常看起来像其中一个值不是该列的正确类型。 – SenseException

+0

您是否从$ row-> id var_dump值? – 2014-03-06 11:40:15

回答

1

你准备了2个占位符,但你传递了3个参数给​​数字必须匹配:

$qry = $db->prepare('INSERT INTO tbl_hpoifinds (user, hpoiid) VALUES (?, ?)'); 
$qry->execute(array($invoker, $id));