SQL sözdizimi hatası atma basit bir sorgu

3 Cevap php

Bir SQL sözdizimi hata atma tutar basit bir SQL sorgusu var. Bu şuna benzer:

$sql = "SELECT COUNT(*) AS TOTAL FROM PRODUCT WHERE ID_PRODUCT = ".$id;
$result = mysql_query($sql) or die(mysql_error()); 

Hangi atar:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE ID_PRODUCT = 1' at line 1

Ben ne oluyor anlamıyorum. Ben phpMyAdmin doğrudan sorgu çalışırsanız elbette hiçbir sorun ile çalışır.

Bir SELECT * ile tam olarak aynı hatayı verir

Edit: ID_PRODUCT bir yabancı anahtar ...

Update: Ben de $ sql dizesi statik bir değer ile $ id değişkeni değiştirirken aynı hatayı alıyorum WHERE ID_PRODUCT = 2 ve tırnak tarafından isimleri korurken.

3 Cevap

Elle $sql satırına yeniden tamamen deneyin, yanlışlıkla (örneğin yerine normal bir boşluk olmayan bir kırma alanı, vb gibi) orada görünmez bir genişletilmiş bir karakter olabilir.

ID_PRODUCT sütunu varchar ise, sizin nerede yan tümcesi değer etrafında tek tırnak koymak gerekir. Böyle bir şey olabilir, sizin şeması hakkında bilgi olmadan söyleyemem.


Güncelle: emin değil o zaman. Belirgin bir sonraki adım, oluşturulan SQL yazdırmak ve elle çalıştırmayı deneyin, umarım sorun tezahür edecek ve sorunun kaynağı olarak PHP ekarte etmek mümkün olacaktır olmaktır.

Tablo, sütun ve tanımlayıcı adlarını alıntı sahipsiniz. Dikkate harf duyarlılığı atın. Sizin tablolar, sütunlar ya da tanımlayıcılar için FULL-SERMAYE adları kullanmayın.

Düzenleme: okunabilirliği için, çoğunlukla, aynı zamanda ayrılmış anahtar kelime ile çatışmaları engelleyebilir.

Ben çizgisinde düşünüyordum:

SELECT COUNT(*) AS "total" FROM "Product" WHERE "id_Product" = 1

MySQL varsayılan olarak bu alıntı standart dışı ters tırnak karakteri (') kullandığını unutmayın. (Burada görünmüyor rağmen düzgün yüzden de çift tırnak kullanabilirsiniz.)