2015-11-28 44 views
2

我在php中创建日历并从数据库中获取事件。我们还必须使用准备好的PDO语句插入事件。我可以成功创建新事件并将其插入到事件表中。我也必须与家人联系并举办活动。PDO如何从表中获取auto_increment值

$stmt = $handle->prepare("INSERT INTO events(name, description, starthour, meridian, eventdate) 
    VALUES(:name, :description, :starthour, :meridian, :eventdate)"); 
$stmt->execute(array(
    "name" => $name, 
    "description" => $description, 
    "starthour" => "$starthour", 
    "meridian" => "$meridian", 
    "eventdate" => "$eventdate" 
)); 

$stmt1 = $handle->prepare("INSERT INTO familymemberevents(familymemberID,eventID) 
    VALUES(:familymemberID, :eventID)"); 
$stmt1->execute(array(
    "familymemberID" => $familymemberid, 
    "eventID" => 
)); 

eventID自动增量。无论如何,我可以从数据库中获得这个数字吗? 在此先感谢!

+0

http://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_last-insert-id – Mihai

+0

PDO有一个最后插入显示功能; http://php.net/manual/en/pdo.lastinsertid.php。 – chris85

+0

$ lastId = $ stmt1-> lastInsertId(); ,将返回最后的事件ID。了解更多-http://php.net/manual/en/pdo.lastinsertid.php – jewelhuq

回答

1
$stmt = $handle->prepare("INSERT INTO events(name, description, starthour, meridian, eventdate) 
    VALUES(:name, :description, :starthour, :meridian, :eventdate)"); 
$stmt->execute(array(
    "name" => $name, 
    "description" => $description, 
    "starthour" => "$starthour", 
    "meridian" => "$meridian", 
    "eventdate" => "$eventdate" 
)); 

$eventID = $stmt->lastInsertId(); 

if($eventID){ 
    //Event Insert successful, continue with familymemberevent insert 
    $stmt1 = $handle->prepare("INSERT INTO familymemberevents(familymemberID,eventID) 
     VALUES(:familymemberID, :eventID)"); 
    $stmt1->execute(array(
     "familymemberID" => $familymemberid, 
     "eventID" => $eventID 
    )); 
}else{ 
    //Event Insert failed - handle appropriately here 
}