SQL MySQL komut satırında vs kodunda çalışan arasında herhangi bir fark var mı?

3 Cevap php

Ben bir PHP programı içinde çalışan olduğum bir SQL güncelleme deyimi var. Bu hazırlanmış ve daha sonra idam edilir. PHP çalıştırdığınızda, bir kısıtlama ihlali bildiriyor. (Ben dBug yoluyla () alıyorum) komut satırından aynı deyimi çalıştırdığınızda, bu hata ile çalışır. Bu imkansız geliyor, bu yüzden tabloları arasındaki farklılıklardan aramaya devam. Görebildiğim tek şey Bağımsız değişken bir dizi ile çalıştırdığınızda bazı tamsayı olması gerektiği zaman, hepsi, karakter olarak görünür olmasıdır.

Nereye bakacağını için herhangi bir öneriniz?

Burada PHP versiyonu (ben bunu daha okunaklı hale getirmek için biraz tweaked) 'dir:

$st =& $db->prepare("update tbl set uid=?, frequency=? other_id=? where id=$id");
$values = array($uid, $freq, $other_id);
$res =& $db->execute($st, $values);
new dBug ($res);

3 Cevap

Peki, bunu söylemekten nefret ediyorum, ama sorun benim kopyalama ve yapıştırma ile oldu. Ben onları okurken duraklatmak için değerleri ve uyku göstermek için dBug kullanıyordum, ama ben kopyala ve yapıştır olamazdı çünkü ben sorguyu yeniden yazmak zorunda kaldım. Ve ben değerlerden birini typo'd. Teşekkürler çabaları için, ama her zamanki gibi: operatör hatası.

Muhtemelen PHP, istemci ve MySQL istemci, farklı karakter kümelerini kullanın.

Müşterinin karakter tablosundaki bir muadili yok kullanıcı girişi verileri ????? hangi kısıtlamayı ihlal olasılığı dönüştürülmüştür alabilirsiniz:

SELECT  CAST('абвгд' AS CHAR CHARSET LATIN1)

---
?????

'абвгд' burada Kiril karakterleri olmaktan.

Eğer tablo defintion ile birlikte eklemek için çalışıyoruz bazı veriler örnek verebilir misiniz?

Imkansız Sesler - değişkenler bağlı edildikten sonra çalıştırın ediliyor SQL biraz fark olabilir. Genel sorgu günlüğünü etkinleştirmek ve 2 senaryolarda ifadelerin idam sürümleri karşılaştırın.

C.