PDOStatement :: bindParam () eklemek MySQL AI değerini ayarlayarak değil?

1 Cevap php

Ben PDO php sınıfını kullanarak basit bir ekleme deyimi var.

'id' sütunu AutoIncrement ile kimlik (doy) olduğunu.

$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);

Deyimi (satır doğru yazılır) doğru yürütür rağmen, $ demo-> id null.

I have a very similar statement for a different table, and it correctly returns the id column.

Herhangi bir düşünce?

1 Cevap

id autoincremented ise, tabloya eklerken belirtmeniz gerekmez. Size ne değer veriyoruz $demo->id?

Eğer takılı giriş id gerekiyorsa, değeri ile PDO::lastInsertId , then set the object's $id alanını kullanarak almak olabilir.