PHP возвращает успех, даже если в базу данных не вставлено ни одной записи

0

Я использую этот 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
    }
}
  • 0
    оберните оператор if вокруг оператора execute() .
  • 0
    голосовать за опечатку
Показать ещё 3 комментария
Теги:

1 ответ

4
Лучший ответ

Вам нужно проверить возвращаемое значение 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
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню