我使用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;
答案 0 :(得分:4)
答案 1 :(得分:2)
试试这个(如果你使用mysqli
):
$db->insert_id;
或(如果您使用PDO
):
$db->lastInsertId();
答案 2 :(得分:0)
答案 3 :(得分:0)
答案 4 :(得分: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);
然后您可以将获取的数据用作您的要求