PHP不将变量插入mySQL查询

时间:2013-05-21 15:47:00

标签: php mysql database

我无法将我的一个变量成功插入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循环中的逻辑错误(我需要为订单中的每个货件运行查询)。 <以某种方式改为<=所以一旦我改变了它就行了。感谢大家的回复。

2 个答案:

答案 0 :(得分: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,“装运方法”,   来自SHPPMTHD的“装运状态”BAMMDD = bamddd和BAYY = BAYY   AND BAXXX = BAXXX AND SHPNUM = 54 AND ORDNUM ='555'按SHPNUM排序

答案 1 :(得分: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