Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP变量在SQL查询中不起作用?_Php_Mysql_Sql_Database - Fatal编程技术网

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

PHP变量在SQL查询中不起作用?,php,mysql,sql,database,Php,Mysql,Sql,Database,给我2010-04-21 当我将该日期硬编码到SQL查询中时,它工作得很好 echo $date1u 但当我直接使用$date1u时,它根本不起作用 SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '2010-04-21' 我的变量$date1u或SQL格式有什么问题使其无法工作 编辑 听从建议并尝试 "SELECT * FROM phoneappdetail WHERE salebarn = 'OSI'

给我2010-04-21

当我将该日期硬编码到SQL查询中时,它工作得很好

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

SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '2010-04-21'
我的变量$date1u或SQL格式有什么问题使其无法工作

编辑

听从建议并尝试

"SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '".$date1u."' "
看看结果,看看在这种情况下是如何输出的

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

当我单独回显$date1u时,它的2010-04-21,但是当我回显SQL查询中的var时,1天被添加了,我想知道,
$date1u
返回的值是否返回一个带引号的值。如果是这样,您需要在将引号插入SQL查询之前删除引号。

我猜是这样的

这:

应该是这样的:

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

您需要在日期取出
'
。这是因为sql查询错误。

变量两边是否有空格,即空格或制表符?如果是这样的话,这可能就是导致问题的原因


尝试
echo“>>”$日期1U。“>2010-04-21我在我的服务器上尝试了这个,它成功了

SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = 2010-04-21
这可能不是完美的编程,但它确实有效。

试试这个

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

您是否已将上述查询分配给一个变量并回显结果?如何不起作用?您会遇到什么错误?是否有可能您有一些不可见的字符?与示例1中的情况不同,我得到了结果,但在示例2中我没有得到结果。请不要使用
mysql.*
函数来编写新代码。它们不再可维护d和社区已开始。请参阅?相反,您应该了解并使用or。如果您无法决定使用哪一个,则会对您有所帮助。如果您选择PDO,。否,我们的意思是将示例中的最后一个查询分配给一个变量,并将其打印出来,以查看它是否与硬编码查询匹配。请更新答案,因为“”不在回显的内容中.SELECT*FROM phoneappdetail,其中salebarn='OSI'和saledate='2010-04-21'工作正常。使用$date1u的版本不起作用。您是否从php/mysql返回了任何错误代码?实际上,这解决了我的问题,因为var休息了1天
"SELECT * FROM phoneappdetail WHERE salebarn = 'OSI' AND saledate = '" . trim($date1u) . "'"