从MySQL插入返回行ID

时间:2013-12-20 23:28:48

标签: php mysql sql function mysql-insert-id

我在函数文件中有这个函数。我用它调用它(从另一个调用包含函数文件的文件):newBorrow_request($ newBorrowRequest); ($ newBorrowRequest)是一个字段数组。

该函数将数据插入数据库,并且工作正常。

问题:如何返回它插入的ID字段?我需要调用函数的同一文件中的值,有人可以给我函数和代码的代码吗?如何在另一个文件中调用它来获取ID的代码?

由于

function newBorrow_request($newBorrowRequest) {
array_walk($newBorrowRequest, 'array_sanitise');

$fields = '`' . implode('`, `', array_keys($newBorrowRequest)) . '`';
$data = '\'' . implode('\', \'', $newBorrowRequest) . '\'';

$query = mysql_query("INSERT INTO `borrowRequest` ($fields) VALUES ($data)");
if (!$query) {
    die('Could not query:' . mysql_error());
}

} 

3 个答案:

答案 0 :(得分:1)

问题不仅在于如何获取最后一个插入ID,还在于如何将其置于函数之外。

需要由函数返回。

function newBorrow_request($newBorrowRequest){
    // your procedure
    return mysql_insert_id();
}

调用函数时,返回值设置变量

$last_insert_id=newBorrow_request($some_data);

你可以使用

echo $last_insert_id;

NB。请使用mysqli或PDO而不是mysql

答案 1 :(得分:0)

如果您正在使用< 5.5.0: http://php.net/mysql_insert_id

优选的: http://www.php.net/manual/en/mysqli.insert-id.php

答案 2 :(得分:0)

您可以使用以下代码行:

printf("Last inserted record has id %d\n", mysql_insert_id());

但请注意,自PHP 5.5.0起,此功能已被弃用。 如果你看看php.net/mysql_insert_id,会给出一些替换建议。