Sql Sorgu çalışmıyor!

6 Cevap php
INSERT INTO `test` (`x`, `y`)  WHERE `id` = `$id`

VALUES (`$x`, `$y`)

Bu sorgu ile yanlış nedir? Ben bir php dosyasında bir mysql_query() fonksiyonu bu çalıştırın.

6 Cevap

Sen bir ekleme ile bir Where tümcesi kullanamazsınız. Ya bir satır ekleme ya da değilsin.

Eğer veritabanından bilgi güncelleme çalıştırdığınız sorgu yerine INSERT INTO UPDATE kullanmaya çalışıyorsanız.

Bir uç üzerindeki bir yere yan tümcesi kullanamazsınız. Ben bir güncelleştirme deyimini isteyen olabileceğini düşünüyorum:

update test set
x = $x,
y = $y
where id = $id

Eğer veritabanında yeni bir değer ekleme olduğunuzda, genellikle (otomatik oluşturulan kimliklerini kullanarak konum varsayarak) ekleme kadar sonra bir ID değeri yoktur.

Sen "id = $ id" kaldırmak gerekir - bu bir INSERT deyimi anlamı yoktur.

Bu nedenle, her iki

GÜNCELLEME testi SET x = 'x', y = '$ y' WHERE id = '$ id';

VEYA

Testi ('x', 'y') VALUES ('$ x', '$ y') INSERT INTO;

diğer mesajlar belirtildiği gibi - bir WHERE ile bir INSERT yapamaz.

Ayrıca değerleri için tekli tırnak (') yerine backticks (`) kullanmanız gerektiğini unutmayın. Sütun adları / alan adları başvururken backticks kullanılır.

Bu:

`field` = '$value'

bu daha ziyade:

`field` = `$value`

Eğer gerçekten başka bir alan başvurmak istiyorum sürece. Bu kopyalama değerler veya eşleşen Joın ve bu zaman istediğiniz ne bazen. Orada bir değişken var çünkü Ama, ben tek tırnak yerine backticks kullanmak istiyorum varsayarak yaşıyorum.