2013-12-20 3 views
0

У меня есть эта функция внутри файла функций. Я называю это с помощью этого (из другого файла, который включает в себя файл функций): newBorrow_request ($ newBorrowRequest); ($ newBorrowRequest) - это массив полей.Идентификатор строки возврата из вставки MySQL

Функция вставляет данные в базу данных, и она отлично работает.

Вопрос: Как я могу вернуть поле идентификатора, в которое оно вставляется? Мне нужно значение в том же файле, где вызывается функция, может ли кто-нибудь дать мне код для функции & код, как позвонить в другой файл, чтобы получить идентификатор?

Благодаря

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

http://php.net/mysql_insert_id - но обратите внимание на большой красный предупреждающий блок об этой функции (и всех функциях mysql_ *) – andrewsi

+0

@andrewsi Я видел это. .. но если я добавлю $ id = mysql_insert_id(); а затем вернуть $ id; как я могу получить это возвращаемое значение из другого файла? Потому что, если я снова вызову функцию, он говорит, что не может запросить (очевидно, потому что, когда я его вызываю, он хочет снова вставить в базу данных) – Alex

+0

В этом случае вам просто нужно вернуть '$ id' из этой функции. – andrewsi

ответ

0

Вы можете использовать эту строку кода:

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

Но имейте в виду, что эта функция устарела с php 5.5.0. Если вы посмотрите на php.net/mysql_insert_id, для замены потребуется несколько предложений.

1

Вопрос заключается не только в том, как получить последний идентификатор вставки, но и о том, как получить его вне функции.

Он должен быть возвращен функцией.

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

Отлично !! Спасибо – Alex

Смежные вопросы