1

我使用 PHP 编写服务器端脚本,使用 mysql 服务器编写数据库。如果我使用mysql_insert_id(),那么它会给出“0”并且使用LAST_INSERT_ID()会导致错误“对象返回空描述”。当我在 Objective-C 的客户端调试时看到这个错误。我的表的 id 列是自动生成的。我没有明确传递 id。

下面是 PHP 代码:

 // Connect to our database
    $db = Frapi_Database::getInstance();

    $sql = "INSERT INTO userTrip 
        (userId, fromLat, fromLon, fromLoc, fromPOI,
        toLat, toLon, toLoc, toPOI,
        tripFinished, isMatched, departureTime, createdAt)
        values 
        (".$userId.",".$fromLat.",".$fromLon.", GeomFromText('POINT($fromLat $fromLon)')".",'".$fromPOI."',".$toLat.","
            .$toLon.", GeomFromText('POINT($toLat $toLon)')".",'".$toPOI."',0,0,'".
            $departureTime."','".date('Y-m-d H:i:s')."')";

    $stmt = $db->prepare($sql);        

    if (!$stmt->execute())
        throw new Frapi_Error('ERROR_INSERTING_RECORD');

    $lastId = LAST_INSERT_ID();
    $this->data['tripId'] = $lastId;
    $db = null;
4

5 回答 5

4

Frapi 数据库PDO扩展,所以你会使用这个:

$lastId = $db->lastInsertId();

也可以看看:PDO::lastInsertId()

于 2013-04-01T08:57:12.250 回答
2

试试这个(如果你使用mysqli):

 $db->insert_id;

或者(如果您使用PDO):

 $db->lastInsertId();
于 2013-04-01T08:57:21.470 回答
0

你在找这个吗?

获取最后插入的 id

mysql_insert_id();

mysql_insert_id

于 2013-04-01T08:55:39.310 回答
0

尝试

$id = mysql_insert_id();

它会为你工作,试试这个链接mysql_insert_id这个

于 2013-04-01T08:56:20.700 回答
0

如果您的表具有像 UserID、Emp_ID、.. 这样的 AUTO INCREMENT 列,那么您可以使用此查询来获取最后插入的记录

SELECT * FROM table_name where UserID=(select MAX(UserID)from table_name)

在 PHP 代码中:

$con = mysqli_connect('localhost', 'userid', 'password', 'database_name');
if (!$con) {
     die('Could not connect: ' . mysqli_error($con));
}
$sql = "SELECT * FROM table_name where UserID=(select MAX(UserID)from table_name)";
$result = mysqli_query($con, $sql);

然后您可以使用获取的数据作为您的要求

于 2014-07-28T07:02:28.053 回答