Почему запрос к БД insert возвращает false, но добавляет при этом данные в БД?

Здравствуйте.
Проблема в следующем: добавляю при помощи нижеследующего кода строку в таблицу, функция при этом должна возвращать статус операции — true или false. Путем экспериментов установил, что она всегда возвращает false, но сам запрос на добавление проходит успешно (данные в таблице появляются).
Попытки вывести mysql_error \ mysql_errno ничего не дали (пустая строка и 0 соответственно).

Помогите, пожалуйста, разобраться, с чем это может быть связано?..

Собственно, код метода (в маппере, вызывается из класса):

public function AddTopicForPromote(ModuleTopic_EntityTopic $oTopic, $vPrice, $vAmount) {
		$sql = "INSERT INTO ".Config::Get('db.table.topic_promote_params')." 
			( 
				topic_id,
				promote_price,
				promote_amount,
				status
			) VALUES (?d, ?d, ?d, ?d)";

		if ($this->oDb->query($sql,$oTopic->getId(),$vPrice,$vAmount,0)) {
			return true;
		}
		return false;
	}

2 комментария

avatar
При insert возвращается текущий вставленный примари индекс с автоинкременом. В это таблице, судя по всему, его нет.
Поэтому нужно так:
if ($this->oDb->query($sql,$oTopic->getId(),$vPrice,$vAmount,0)!==false) {
	return true;
}
return false;
  • ort
  • +1
avatar
Помогло, спасибо огромное!)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.