2
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'

一些当我单独回显 $date1u 时,它的 2010-04-21 但是当我在 SQL 查询中回显 var 时,添加了 1 天

4

5 回答 5

2

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

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

如果你得到 ">> 2010-04-21<<" 你就会知道你有一个领先的空间。获取可变长度也可能有助于查明问题。

于 2012-06-11T17:28:46.437 回答
1

我想知道$date1u返回的值是否返回一个用引号括起来的值。如果是这样,您需要先删除引号,然后再将其插入 SQL 查询。

于 2012-06-11T17:20:59.593 回答
0

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

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

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

于 2012-06-11T17:37:38.373 回答
0

尝试这个

"SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '" . trim($date1u) . "'"
于 2012-06-11T17:44:28.080 回答
0

我正在猜测

这个:

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

应该是这样的:

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

你需要拿出''日期。这是针对 sql 查询错误的。

于 2012-06-11T17:26:07.943 回答