我有一个使用PDO php类的简单插入语句。
'id'列是带有自动增量的标识(doy)。
$statement = $db->prepare('INSERT INTO demographics (id,location_id,male,ethnicity_id,birthyear) VALUES (:id,:location_id,:male,:ethnicity_id,:birthyear)');
$statement->bindParam(':id',$demo->id,PDO::PARAM_INT,4);
$statement->bindParam(':location_id', $demo->locationid,PDO::PARAM_INT);
$statement->bindParam(':male',$demo->male,PDO::PARAM_BOOL);
$statement->bindParam(':ethnicity_id',$demo->ethnicityid,PDO::PARAM_INT);
$statement->bindParam(':birthyear',$demo->birthyear,PDO::PARAM_INT);
$statement->execute();
print_r($demo);
即使语句正确执行(行正确写入),$ demo-> id也为null。
我对另一个表有一个非常相似的语句,它正确返回id列。
有什么想法吗?
答案 0 :(得分:1)
如果id
是自动增量的,则在插入表格时无需指定它。您对$demo->id
有什么价值?
如果您需要插入条目的ID,可以使用PDO::lastInsertId
检索它,然后使用值设置对象的$id
字段。