-1

我无法将我的变量之一成功插入到我的 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等)均已成功输入,但变量 forSHPNUM未输入。

我已经尝试了我能想到的一切,认为它可能是在错误的地方引用,但我没有成功。谁能帮我解决这个问题?谢谢。

编辑:我print_r在字符串上做了一个,它打印了两次......一次SHPNUM正确插入,一次空白。原来这是我使用的 for 循环中的一个逻辑错误(我需要为订单中的每个货件运行查询)。 <不知何故<=,一旦我改变它就可以了。谢谢大家的回复。

4

2 回答 2

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

产生:

从 SHPPMTHD 中选择 BAMMDD、BAYY、BAXXX、ORDNUM、SHPNUM、“发货方式”、“发货状态”

于 2013-05-21T16:42:02.767 回答
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

于 2013-05-21T16:22:44.027 回答