PHP PDO ilgili: veritabanının içeriğini güncellemiyor Güncelleme SQL deyimi

4 Cevap php

Ben bir PHP script hazırlanmış bir deyimi kullanarak bir güncelleştirme deyimini uygulamak çalışıyorum, ama bu veritabanında kayıt güncelleme değil ve ben neden emin değilim ve bu yüzden paylaşabilirsiniz seviniriz görünür bazı anlayışlar.

Code

$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();

Inspiring solution, bu yaklaşımın yol açar. Ben nasıl bu sorunu düzeltebilirim?

4 Cevap

Yardımcı olabilir, ancak 4 varken neden sadece 3 değişkenleri bağlayıcıdır? Ben deneyim PHP yapıyor olduğunu söyleyemeyiz, ancak Perl ve Oracle bir hata atmak olacaktır. Ben 2 set bağlayıcı denemek ve 1 WHERE, ve ilk atama kaldırma ve çalıştığını görmek istiyorum.

Emin party_id Eğer güncelleme çalıştığınız veritabanında varolduğunu olun.

Ayrıca, masa InnoDB, üzerine autocommit sahip olduğundan emin olun veya güncelleme yapıldıktan sonra açık bir taahhüt vermek ise.

Ben size yapmak çalıştığınız ne yapmak istiyorsanız emin değilim.

Party_id SET ve WHERE yan tümceleri beri UPDATE deyimi temelde, anahtar ve YENİ değerine göre iki değerleri güncelleştirmek diyor.

Bunu için hazırlanmış deyimi değiştirmek isteyebilirsiniz:

UPDATE DatTable SET DF_PARTY_ID = :party_id, DF_PARTY_CODE = :party_code, DF_CONNECTION_ID = :connection_id WHERE DF_PARTY_ID = ':old_party_id'

old_party_id: için party_id ve AKIM: biri için YENİ party_id değeri bağlamak

Bunun yerine tahmin temel, hata işleme yapılmalıdır:

$arr = $stmt->errorInfo();
print_r($arr);