PHP未在mySQL查询中插入变量


PHP Not Inserting Variable Into mySQL Query

我在将一个变量成功插入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,它打印了两次。。。一次是正确插入CCD_ 7,一次是空白。事实证明,这是我使用的for循环中的一个逻辑错误(我需要为订单中的每一批货物运行查询(。<不知怎么改成了<=,所以一旦我改了,它就起作用了。感谢大家的回复。

我想说的是,您访问该数组值的方式有问题,无论是使用$x变量,还是将原始数组值传递给字符串的方式(如果没有其他代码,很难说:尝试将其分配给$SSHPNUM并将$SSHPNum放入语句中?(。

在您的代码中尝试运行:

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>";
?>

产品:

选择BAMMDD、bay、BAXXX、ORDNUM、SHPNUM、"装运方式","装运状态"来自SHPPTHD,其中BAMMDD=bamddd和BAYM=BAYM和BAXXX=BAXXX和SHPNUM=54和ORDNUM='555'顺序由SHPNUM-

$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条件中添加引号('(