2013-05-21 199 views
-1

我無法讓我的一個變量成功插入到mySQL查詢中。下面是該查詢字符串:PHP不插入變量到MySQL查詢

$strShipMethodInfo = "SELECT BAMMDD, BAYY, BAXXX, ORDNUM, SHPNUM, \"SHIPMENT METHOD\", \"SHIPMENT STATUS\" FROM SHPPMTHD WHERE BAMMDD = " . $BAMMDD . " AND BAYY = " . $BAYY . " AND BAXXX = " . $BAXXX . " AND SHPNUM = " . $arrShippingInfo[$x]['SHPNUM'] . " AND ORDNUM = '" . $ORDNUM . "' ORDER BY SHPNUM"; 

我在另一個查詢,這是非常相似的使用$arrShippingInfo[$x]['SHPNUM'],它是把變量中的一個。但是,當我使用此查詢執行操作時,它會回到空白狀態。所有其他值(BAMMDDBAYYBAXXX等)成功投放,但SHPNUM變量不投入進去。

我已經試過所有我能想到的,認爲這可能是一個報價在錯誤的地方,但我一直不成功。任何人都可以幫我理解一下嗎?謝謝。

編輯:我做了一個print_r的字符串,並且它打印了兩次......一次用SHPNUM正確插入,一次空白。原來,這是我使用的for循環中的一個邏輯錯誤(我需要爲訂單中的每個貨件運行查詢)。 <莫名其妙地改變爲<=所以一旦我改變它的工作。感謝大家的迴應。

+1

如果在嘗試將其放入查詢之前轉儲變量,您會得到什麼? –

+3

但這不是你的INSERT查詢,我們怎麼幫你? – codingbiz

+0

SHPNUM是數字還是字符串類型?如果字符串,則在值的前後缺少一些單引號。 –

回答

2

我會說有什麼問題,你是如何訪問一個數組值,或者與$ x變量,或者你是如何傳遞將原始數組值賦給字符串(很難說沒有代碼的其餘部分:嘗試將其分配給$ SHPNUM並將$ SHPNUM放入語句中?)。

在你的代碼,嘗試運行:

echo $x; echo $arrShippingInfo[$x]['SHPNUM']; 
var_dump($arrShippingInfo); 

,你應該能夠找到問題。

使用虛擬數據與您的發言,並通過在我結束運行代碼:

<?php 

$BAMMDD = 'bamddd'; 
$BAYY = 'BAYY'; 
$BAXXX = 'BAXXX'; 
$arrShippingInfo[0]['SHPNUM'] = '54'; 
$ORDNUM = 555; 

$x = 0; 
$strShipMethodInfo = "SELECT BAMMDD, BAYY, BAXXX, ORDNUM, SHPNUM, \"SHIPMENT METHOD\", \"SHIPMENT STATUS\" FROM SHPPMTHD WHERE BAMMDD = " . $BAMMDD . " AND BAYY = " . $BAYY . " AND BAXXX = " . $BAXXX . " AND SHPNUM = " . $arrShippingInfo[$x]['SHPNUM'] . " AND ORDNUM = '" . $ORDNUM . "' ORDER BY SHPNUM"; 

echo "<pre>$strShipMethodInfo</pre>"; 
?> 

產地:

SELECT BAMMDD,BAYY,BAXXX,ORDNUM,SHPNUM, 「運輸方式」 , 「發貨狀態」 FROM SHPPMTHD WHERE BAMMDD = bamddd AND BAYY = BAYY AND BAXXX = BAXXX AND SHPNUM = 54和ORDNUM = '555' ORDER BY SHPNUM

1
$strShipMethodInfo = "SELECT BAMMDD, BAYY, BAXXX, ORDNUM, SHPNUM, \"SHIPMENT METHOD\", \"SHIPMENT STATUS\" FROM SHPPMTHD WHERE BAMMDD = '" . $BAMMDD . "' AND BAYY = '" . $BAYY . "' AND BAXXX = '" . $BAXXX . "' AND SHPNUM = '" . $arrShippingInfo[$x]['SHPNUM'] . "' AND ORDNUM = '" . $ORDNUM . "' ORDER BY SHPNUM"; 

加引號(')在where condtion

+0

正如他所描述的,他試圖將價值放入他正在建立的聲明中,而不是引號問題。 – cerd