2013-09-25 39 views
3

我发布了一个新的行到数据库,但想要返回新的自动递增的ID在使用medoo的响应中。这似乎正在生成一个新的空白行并返回该ID。得到最后一个自动递增的ID与medoo

<?php 

    // Independent configuration 
    require 'medoo.php'; 
    $database = new medoo(array( 
    // required 
    'database_type' => 'mysql', 
    'database_name' => 'db', 
    'server' => 'server', 
    'username' => 'user', 
    'password' => 'pw' 

)); 

    $database->insert("properties", array(
"name" => $_POST['name'], 
    "address" => $_POST['address'], 
"address2" => $_POST['address2'], 
    "city" => $_POST['city'], 
"state" => $_POST['state'], 
    "zip" => $_POST['zip'], 
"lat" => $_POST['lat'], 
"lng" => $_POST['lng'], 
"website" => $_POST['website'] 
)); 

$last_id = $database->insert("properties", array(
    "propertyId" => "propertyId" 
)); 

$propertyId = array(propertyId => $last_id); 

echo json_encode($propertyId); 

?> 
+0

那么,什么是问题:

此代码是从官方资料为准? – zerkms

回答

8

insert()方法返回最后一个插入ID。

$insertId = $database->insert("properties", array(
    // etc... 
)); 

echo $insertId; 
+0

工作,谢谢! – user1572796

+0

@ user1572796,不要忘了接受答案,通过点击复选标记;) – SamT

+0

是啊,不会让我之前,直到10分钟过去。 – user1572796

3

接受的答案不再有效。

$database->insert()只返回truefalse。 要获得最后一个自动递增的ID,您必须使用$database->id()

$database->insert("account", [ 
    "user_name" => "foo", 
    "email" => "[email protected]", 
    "age" => 25 
]); 

$account_id = $database->id();