Я использую этот PHP-код для вставки новой записи в базу данных. Проблема в том, что if ($query)
иногда возвращает true, и когда я проверяю таблицу, нет новой записи. Почему он не вставляет запись? и почему он возвращает true, когда он должен возвращать false в случае неудачи?
public function insertUserMileage($alias, $address, $distance, $city,
$latitude, $longitude, $id) {
$sql = 'INSERT INTO user_mileage (user_id, alias, address, distance,
city, lat, lng) VALUES (:id, :alias, :address, :distance, :city,
:latitude, :longitude)';
$query = $this->conn->prepare($sql);
$query->execute(array(':id' => $id, ':alias' => $alias,
':address' => $address, ':distance' => $distance, ':city' => $city,
':latitude' => $latitude, ':longitude' => $longitude));
if ($query) {
return true; // Insert success
} else {
return false; // Insert fail
}
}
Вам нужно проверить возвращаемое значение execute:
$result = $query->execute(array(':id' => $id, ':alias' => $alias,
':address' => $address, ':distance' => $distance, ':city' => $city,
':latitude' => $latitude, ':longitude' => $longitude));
if ($result) {
return true; // Insert success
} else {
return false; // Insert fail
}
execute()
.