PHP变量在SQL查询中不起作用?

时间:2012-06-11 17:18:58

标签: php mysql sql database

echo $date1u

给我2010-04-21

当我使用该日期并将其硬编码到SQL查询中时,它可以正常工作

SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '2010-04-21'

但是当我直接使用$ date1u时,它根本不起作用。

"SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '".$date1u."' "

我的变量$ date1u或SQL格式有什么问题阻止它工作?

修改

遵循建议并尝试

$result1 = "SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '".$date1u."' ";
echo $result1;

要查看结果以及在这种情况下如何输出

 SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '2010-04-22'

当我在2010-04-21单独回复$ date1u时,但是当我在SQL查询中回显var时,有一天如何添加

5 个答案:

答案 0 :(得分:2)

您是否在变量的任何一侧有任何空格 - 即空格或制表符?如果是这样,这可能是导致问题的原因。

尝试echo ">>" . $date1u . "<<";

如果你得到“&gt;&gt; 2010-04-21&lt;&lt;”你会知道你有一个领先的空间。获得可变长度也可以帮助查明问题。

答案 1 :(得分:1)

我想知道$date1u返回的值是否返回由引号括起来的值。如果是这样,您需要在将其插入SQL查询之前删除引号。

答案 2 :(得分:0)

我猜是

这样:

SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '2010-04-21'

应该是这样的:

SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = 2010-04-21

您需要在约会时取出''。这是针对sql查询错误的。

答案 3 :(得分:0)

我在我的服务器上尝试了这个并且它有效。

"SELECT * FROM phoneappdetail WHERE salebarn='OSI' AND saledate='$date1u'"

它可能不是完美的编程,但它有效。

答案 4 :(得分:0)

试试这个

"SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '" . trim($date1u) . "'"