2011-03-20 199 views
0

你好,請關於這個功能。它的搜索腳本。當我傳遞整數到它它的工作,當我通過像12eh它不工作。雖然我一直VARCHAR作爲數據類型,因此它可以爲這兩個php搜索功能

function view($pno) 
{ 
$this->query=("select * from user where pno=$pno"); 
$rd = $this->executeQuery(); 
@$data = $rd->fetch_assoc(); 
return $data; 
} 
+0

添加單引號爲nonintegers工作。也使用'mysql_real_escape_chars'這樣的東西,所以你沒有sqlinject – n00b 2011-03-20 19:00:18

回答

3

你需要引用您的變量在SQL查詢:

$this->query=("select * from user where pno = '$pno'"); 

你也許會做得很好:

$pno = mysql_escape_string($pno); 

在SQL語句中插入變量之前。 man page解釋更多。

+0

感謝它的作品。 – user667340 2011-03-20 19:20:28

0
$this->query=("select * from user where pno='$pno'"); 

缺少引號解決$pno

0

mysql_escape_string()在PHP 5.3中不推薦使用。使用替代mysql_real_escape_string()

代碼將是這樣的:

$this->query = "SELECT * FROM user WHERE pno = '" . mysql_real_escape_string($pno) . "'"; 
+0

這不是對原始問題的回答,而是對我的回答的評論... – Treffynnon 2011-03-20 19:18:02

+0

感謝它的作品。 – user667340 2011-03-20 19:20:48