ilgili php mysql sorgu sözdizimi soru "" 'nin

3 Cevap php

Affet beni, ben bir acemi değilim. Aşağıdaki kod, bir ayrıştırma hatası döndürür:

$query = "INSERT INTO scenario_needgames VALUES ("$id", "Battle of the Bulge")";

phpMyAdmin sorgu oluşturucu bana çalışır Bu biraz değiştirilmiş dize verdi:

$query = "INSERT INTO scenario_needgames VALUES (\"$id\" , \"Battle of the Bulge\");";

- ki - ama tırnak aslında sorgu sözdizimi parçası olduğunuzda kaçmış değil, gereken neden olarak kafam karışık bir başlık veya dize parçası? Ben öğrenme yaşıyorum tanıtım kitabı böyle basit dizeleri için olanlar dahil değildir.

Eğer merak ediyorsanız eğer $ id değeri 7 hane, 4 harf ve daha sonra 3 sayılardır.

Teşekkür ederim.

3 Cevap

Çift tırnak alternatif bir tek tırnaklı dize kullanımı ve çift tırnak kaçmak zorunda değil, çift tırnaklı dizge içinde kaçtı gerekir, ancak o zaman doğrudan değişkenleri sokmak değil, yerine birleştirme kullanmak zorunda:

$query = 'INSERT INTO scenario_needgames VALUES ("' . $id . '", "Battle of the Bulge")';

Alternatif olarak, sadece tek tırnak ile iç çift tırnak değiştirin:

$query = "INSERT INTO scenario_needgames VALUES ('$id', 'Battle of the Bulge')";

I mysql_real_escape_string to correctly and safely quote strings. You might also like to have a look at using prepared statements instead with PDO veya mysqli kullanarak öneririm.

Onlar çünkü PHP değil MySQL kaçan. Siz "karakter" kaçmak gerekir - "dizesi nedeniyle" karakter dizesinin sonuna olarak yorumlanabilir.

Cevabınızı renklendirme koda bakmak. İlk dize yanlış renkli: "ve" kod değil, dize gibi renkli olarak parçalar

Bu bir ayrıştırma hatası döndürmek PHP bulunuyor.

PHP bakış açısından, bir dize tırnak tarafından ayrılmış bir karakter dizisi. Başlangıcındaki bir ve sonunda bir.

Eğer tırnak inside dize koymak istediğinizde, onları kaçmak gerekir, bu yüzden PHP iç tırnak dize sonu değildir bilir.

Onları kaçmak sürece size atıyorsanız şey $query geçerli bir dize değil, çünkü PHP (sadece, her sonunda bir alıntı ile) bir ayrıştırma hatası döndürecektir