Связанный с PDO PHP: оператор SQL Update не обновляет содержимое базы данных - PullRequest
1 голос
/ 05 марта 2010

Я пытаюсь реализовать оператор обновления, используя подготовленный оператор в скрипте PHP , но похоже, что он не обновляет запись в базе данных, и я не уверен, почему и так будет признателен, если Вы можете поделиться некоторыми идеями.

код

$query = "UPDATE DatTable SET DF_PARTY_ID = :party_id,
          DF_PARTY_CODE = :party_code,
          DF_CONNECTION_ID = :connection_id WHERE DF_PARTY_ID = ':party_id'";
$stmt = $this->connection->prepare($query);
$stmt->bindValue(':party_id', $data[0], PDO::PARAM_INT);
$stmt->bindValue(':party_code', $data[1], PDO::PARAM_INT);
$stmt->bindValue(':connection_id', $data[2], PDO::PARAM_INT);
$stmt->execute();

Вдохновляющее решение , ведущее к такому подходу. Как я могу решить эту проблему?

Ответы [ 4 ]

0 голосов
/ 01 апреля 2010

Я не уверен, хотите ли вы делать то, что пытаетесь сделать.

Ваш оператор UPDATE в основном говорит, что обновите ключ и два значения на основе значения NEW, поскольку party_id находится в предложениях SET и WHERE.

Возможно, вы захотите изменить свое подготовленное заявление на:

UPDATE DatTable SET DF_PARTY_ID =: party_id, DF_PARTY_CODE =: код вечеринки, DF_CONNECTION_ID =: connection_id ГДЕ DF_PARTY_ID = ': old_party_id'

привязать ваше НОВОЕ значение party_id к: party_id, а ТЕКУЩЕЕ к: old_party_id

0 голосов
/ 05 марта 2010

Вместо угадывания должна быть реализована базовая обработка ошибок:

$arr = $stmt->errorInfo();
print_r($arr);
0 голосов
/ 05 марта 2010

Может не помочь, но почему вы связываете только 3 переменные, а их 4? Я не могу сказать, что у меня есть опыт работы в PHP, но в Perl и Oracle это выдает ошибку. Я бы попробовал связать 2 набора и 1 ГДЕ и удалить первое назначение и посмотреть, сработает ли это.

0 голосов
/ 05 марта 2010

Убедитесь, что party_id, который вы пытаетесь обновить, существует в базе данных.

Кроме того, если ваша таблица InnoDB, убедитесь, что у вас включено значение autocommit или выполните явную фиксацию после обновления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...