2016-03-11 77 views
0

我有我的代码:PHP/SQL和语句不工作

$db_date2; 
$today2 = date("Y-m-d"); 
     $sql1 = "SELECT * FROM todays_spend WHERE id =$user_id_session AND date=$today2"; 
     $date_records = mysql_query($sql1); 
     while($today_trip=mysql_fetch_assoc($date_records)){ 
     $db_date2 = $today_trip['date'];  
     } 
     echo $db_date2; 

它说: “未定义的变量:db_date2”。当我删除AND语句时,它就起作用了。我在做AND语句错误吗?我的数据库中的'date'字段也以Y-m-d格式保存。

也尝试了单个的qoutes''变量,仍然不能正常工作!

+0

$ SQL1 = “SELECT * FROM todays_spend WHERE ID = '” $ user_id_session。 “ '和日期='” $ today2。 “'”; – Deep

+1

我是唯一一个HATES连接字符串以形成查询的人吗? – WheatBeak

+2

MySQL扩展在PHP5中不推荐使用,并且最新版本中不再存在;切换到使用MySQLi或PDO,然后您可以使用准备好的语句并绑定变量来代替 –

回答

0

您需要围绕您的变量编写单引号''

如下编写查询: -

$sql1 = "SELECT * FROM todays_spend WHERE id ='$user_id_session' AND date='$today2'"; 

警告

mysql_ *被弃用PHP 5.5.0,它是PHP 7.0.0中删除。 相反,库MySQLi或PDO_MYSQL扩展应使用

希望它会帮助你:-)

0

实际上它是使用变量的查询,而不是他们的价值观字符串,以便与只需更换你的代码以下内容:

$db_date2; 
$today2 = date("Y-m-d"); 
     $sql1 =  
     $sql1 = "SELECT * FROM todays_spend WHERE id ='".$user_id_session."' AND date='".$today2."'"; 
     $date_records = mysql_query($sql1); 
     while($today_trip=mysql_fetch_assoc($date_records)){ 
     $db_date2 = $today_trip['date'];  
     } 
     echo $db_date2; 
0

为了您的变数,您需要使用单引号:

此:

$sql1 = "SELECT * FROM todays_spend WHERE id =$user_id_session AND date=$today2"; 

应该是:

$sql1 = "SELECT * FROM todays_spend WHERE id ='$user_id_session' AND date='$today2'";