2016-06-21 57 views
-2

谁能告诉我什么是错误的与查询MySQL查询concatination错误

$sql = "SELECT * FROM user_monsoon_offer WHERE DATE_ADD(start_date,INTERVAL 4 DAY) = ' ".$date." ' AND user_monsoon_offer.user_id NOT IN (SELECT user_id FROM transactions)"; 
+2

你期望什么,你目前的结果是什么? – stenix

+0

'echo $ sql;'并粘贴在这里 – Strawberry

回答

3

我相信你在串联有多余的空格引起的问题。试试这个:

$sql = "SELECT * FROM user_monsoon_offer 
     WHERE DATE_ADD(start_date,INTERVAL 4 DAY) = '$date' 
     AND user_monsoon_offer.user_id NOT IN (SELECT user_id FROM transactions)"; 

你原来WHERE条款看起来像下面这样:

WHERE DATE_ADD(start_date,INTERVAL 4 DAY) = ' 2016-06-21 ' 

,因为多余的空格这将无法正常工作。

+0

它传递$ date作为字符串 –

+0

我删除了它仍然不工作的空格 –

+0

你的日期格式是什么?将其粘贴到此处作为评论或更新您的原始问题。 –

0

我相信你在过滤条件下寻找动态数据连接。使用下面的条件。

SELECT * FROM user_monsoon_offer 
WHERE SUBDATE(start_date,4) = ' ".$date." ' 
    AND user_monsoon_offer.user_id NOT IN (SELECT user_id FROM transactions);