这个PHP代码有什么问题?我试图连接

时间:2014-03-16 12:29:11

标签: php

$result = mysql_query("SELECT * FROM `deceased` WHERE `birthdate` = '{$birthmonth}'. "-" .'{$birthday}'. "-" .'{$birthyear}'");

3 个答案:

答案 0 :(得分:1)

你不应该在字符串中使用点。 但更好的方法是避免将变量注入字符串并使用显式联系人:

$result = mysql_query("SELECT * FROM `deceased` WHERE `birthdate` = '" . $birthmonth . "-"  . $birthday . "-" . $birthyear . "'");

答案 1 :(得分:0)

尝试在引号内连接变量,如下所示

$result = mysql_query("SELECT * FROM `deceased` WHERE `birthdate` = '".$birthmonth . "-" . $birthday . "-" . $birthyear."');

作为附注,我建议您切换到PDOmysqli,因为mysql_* api已被弃用,很快就会不再保留

答案 2 :(得分:0)

来自MYSQL documentation on the Date type

  

DATE类型用于具有日期部分但没有时间部分的值。 MySQL以'YYYY-MM-DD'格式检索并显示DATE值。支持的范围是'1000-01-01'到'9999-12-31'。

因此,如果您根据格式错误的日期进行搜索,那么您的查询很可能无法获得所需内容。你想要的是,以及正确格式化的PHP,是:

$result = mysql_query("SELECT * FROM `deceased` WHERE `birthdate` = '$birthyear-$birthmonth-$birthday'");