По наблюдениям, это работает так:
если мы любым способом узнаем insert_id(mysql_insert_id(), select count(*) from table и т.д.), запись не вставится;
если принудительно выставить id, который auto_increment и который уже когда-либо использовался в этой таблице(даже если сейчас он свободен), запись не вставится;
в остальных случаях insert query работает, но мне надо бы знать номер вставленной записи:(
Сам код:
$res = mysql_query('select * from branches where id='.$this->id);
if($res->num_rows==0)
{
$this->name = $name_;
mysql_query('insert into branches(name) values(\''.$name_.'\')');
// $this->id = mysql_insert_id(); с этим предыдущая строка не работает
}