Bu MySQL Sorgu Tablosu doğru mudur?

4 Cevap php

Ben, bu MySQL deyimi doğru idam edilecek olup olmadığını bilmek istiyorum

"SELECT sum(price) FROM products WHERE productid IN (SELECT productid FROM shoppingcart WHERE sessionid=".$this->$sessionid.")"

Ve eğer ben yanlış nereye kadar bana işaretçiler verin.

Teşekkürler

4 Cevap

Ne demek eminim

$this->sessionid

değil

$this->$sessionid

($ Oturumkimliği 'abcdef' olduğunda, ikinci bir o özellik abcdef $ this-> değerini döndürmeye çalışır, böylece oturum kimliği saklanır, hangi isim, mülkün değerini döndürür).

Ayrıca, içine alın 'VE tüm parametreleri kaçış.

"SELECT sum(price) FROM products WHERE productid IN (SELECT productid FROM shoppingcart WHERE sessionid='".mysql_escape_string($this->sessionid)."')";

SQL Server kullanıyorum ama burada hata olduğunu düşünüyorsanız

tek tırnak 'session id için gereklidir

        "SELECT sum(price) FROM products WHERE productid IN (SELECT productid 
    FROM shoppingcart WHERE sessionid='".$this->$sessionid."')"

Bana güzel görünüyor.

@ Praynay söylediğim gibi, ben size oturum kimliği tırnak ihtiyaç inanıyorum.

Ayrıca, very, very sure $this->sessionid bir alıntı karakteri in itself olmaz, ya da MySQL geçirmeden önce düzgün kaçış olduğunu olabilir. (Ya da daha iyisi, bir parametreli sorgu kullanabilirsiniz.)