2013-05-21 161 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