|
|
|
|
|
для: cheops
(03.01.2007 в 13:08)
| | я возможно слишком мелко написал что возвращается максимальный ID + 1, ваше утверждение былобы верным если пытаться вставить строку которая уже есть и ее ID максимальный, а если инсерт делать к произвольной строке, то это не работает. | |
|
|
|
|
|
|
|
для: tonnal
(03.01.2007 в 03:13)
| | Почему, вы можете поступить следующим образом
<?php
if(mysql_affected_rows()) $this->insert_id = mysql_insert_id();
else $this->insert_id = mysql_insert_id() - 1;
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(03.01.2007 в 02:40)
| | Даже если я узнаю что запись не вставлена (вернет 0), то придется делать еще один подзапрос, а это как то не красиво. может есть способ заставить mysql_insert_id() вернуть нужный id? | |
|
|
|
|
|
|
|
для: tonnal
(03.01.2007 в 02:26)
| | А вы перед тем как обращаться к mysql_insert_id() используйте функцию mysql_affected_rows(), которая вернёт количество реально вставленных записей. | |
|
|
|
|
|
|
| Задача записать в БД строку запрашиваемой страницы (для статистики), дабы не делать предзапрос на существование (адрес поле уникальное) решил поюзать INSERT IGNORE INTO.
$sql = "INSERT IGNORE INTO
`counter_pages`
SET
URL = '".$this->user_info['site_page']."'";
mysql_query($sql);
$this->insert_id = mysql_insert_id();
|
Все странность в том, что при вставке новой записи mysql_insert_id() возвращает правильный ID, а если запись уже есть то несуществующий ID который равен: (max_ID+1)
mysql 3.23.53, php 4.3
каке мысли? и всех с НГ! | |
|
|
|
|