2010-06-04 7 views
0

У меня есть страница, в которой есть петля if...else для обработки входных данных, эта страница возвращается два раза при отправке, то есть при нажатии кнопки «Продолжить» и и второй раз «Добавить в корзину» .... Теперь в этом случае, когда нажата кнопка «Продолжить», выполняется цикл if, в который данные вставляются в базу данных, а при обновлении я получаю отображение всех входных данных данных и на этот раз получена еще одна кнопка «Добавить в корзину» .. при добавлении в корзину в код else выполняется условие/часть цикла.Вопрос о приложении mysql_insert_id() в моем коде

Теперь у меня вопрос, как будто данные изначально вставляется в If, а затем затем else, так что я могу использовать функцию mysql_insert_id() в другой части для извлечения последних данных, которые были вставлены в часть if?

Ниже тип кода я говорю:

If(Button Continue is clicked) 
{ 
    insert query for a product table...... 
} 
else Button Add to Cart is Clicked 
{ 
    mysql_insert_id(); to fetch last id inserted in the above above loop/condition.. 
} 

Так можно получить последний вставленный идентификатор в else части?

ответ

1

Если я понимаю ваш сценарий, то нет. mysql_insert_id (и его кузен mySQL LAST_INSERT_ID()) вернет последний идентификатор вставки только для текущего подключения. Это означает, что если вы перейдете на следующую страницу, будет установлено новое соединение, и insert_id() не будет работать.

Обходной путь может помещать идентификатор вставки в переменную сеанса сразу после выполнения запроса - тогда он будет доступен на других страницах. (Просто будьте осторожны, когда у пользователя открываются несколько вкладок/окон и одновременно выполняется два заказа - убедитесь, что вы используете какой-то идентификатор для каждого процесса бронирования.)

1

так может получить последний вставленный идентификатор в другой части ?

Вы не можете. Единственное место, где вы должны пытаться восстановить insert_id, - это только после выполнения INSERT. Вы никогда не должны хранить данные транзакции в сеансе, поэтому, если у вас есть несколько идентификаторов вставки, и вам необходимо передать эту информацию между разными страницами, тогда записи должны ссылаться на одну «главную» запись (например, корзину покупок), поскольку это не изменяется в ее в течение жизни было бы безопасно хранить идентификатор для этой записи в сеансе.

C.

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