Php:如何在where子句下使用$ _POST

时间:2012-03-18 12:06:55

标签: php mysql post where-clause

我遇到此问题,我无法从数据库中检索数据。

这很好用

$user_date = ISSET($_POST['input_date']);

$query1=mysql_query("SELECT START_TIME,END_TIME FROM dummy where MDATE='2012-03-18'")

但事实并非如此。唯一的变化是我用过$ user_date

$user_date = ISSET($_POST['input_date']);

$query1=mysql_query("SELECT START_TIME,END_TIME FROM dummy where MDATE='$user_date'")

2 个答案:

答案 0 :(得分:3)

如果已设置变量,

isset()将返回一个布尔值,而不是变量本身的值。你需要这样的东西:

$user_date = isset($_POST['input_date']) ? mysql_real_escape_string($_POST['input_date']) : '';

以上是三元手术。如果已设置输入值,则将其转义并存储到$user_date。否则,返回空字符串。您需要确定未设置时要采取的操作,:之后的部分。例如,您可以改为返回默认日期:

$user_date = isset($_POST['input_date']) ? mysql_real_escape_string($_POST['input_date']) : '2012-03-18';

答案 1 :(得分:-2)

这是正常的,

$user_date = ISSET($_POST['input_date']);

isset retun a Boolean,

使用以下

if (ISSET($_POST['input_date']))
$user_date = $_POST['input_date'];
$query1=mysql_query("SELECT START_TIME,END_TIME FROM dummy where MDATE='$user_date'")

最重要的是你应该使用mysql_reapl_escape_string函数或类似的函数来避免sql注入。

希望它有所帮助!