我有以下查詢:PHP沒有雙引號內解析變量
var_dump($id); // string '51' (length=2)
$sql = "SELECT * FROM table WHERE id=$id";
$result = mysql_query($sql, $db);
$myrow = mysql_fetch_array($result);
var_dump($myrow) // null (NOT OK)
當我改變$ ID爲一個硬編碼值(51),它的工作原理:
$sql = "SELECT * FROM table WHERE id=51";
$result = mysql_query($sql, $db);
$myrow = mysql_fetch_array($result);
var_dump($myrow); // array 0 => string '51' (length=2) (OK)
這是因爲如果$ sql沒有正確解析。這是一個非常古老的網站,它可能與該網站最初創建的PHP版本有關嗎?
$sql = "SELECT * FROM table WHERE id=".$id;
// ALSO WORKS. But I am not really looking forward to doing a FIND & REPLACE
編輯:
該網站有數百個這樣的查詢類型的。這是一個老的網站,是我的其他人開發的。我想知道是否有一個INI設置或在我可以切換回來的PHP版本之間進行切換。
感謝
PHP版本:PHP5.2
該網站是建立版本4.something。
你嘗試了一些錯誤處理?使用mysql_error函數將是一個選項.. – mishu 2012-02-06 11:40:10
PHP是什麼版本? – Simone 2012-02-06 11:42:09
似乎沒有任何返回的錯誤。 – beingalex 2012-02-06 11:43:59