我在将一个变量成功插入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']
,它将变量放在那个查询中。但是,当我处理这个查询时,它返回为空白。所有其他值(BAMMDD
、BAYY
、BAXXX
等(都已成功放入,但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
条件中添加引号('
(