2012-03-18 42 views
0

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

这工作得很好

$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'") 
+5

小心阅读'isset()'函数做什么?在使用之前阅读手册中的功能描述总是一个好主意。 – 2012-03-18 12:08:10

回答

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'; 
+0

+1。快速的打字技巧。 :)修复错别字,一切都很好。 – Shef 2012-03-18 12:10:14

+0

@Shef已经修复。 – 2012-03-18 12:11:45

+0

那里,现在它是固定的。 :) – Shef 2012-03-18 12:12:43

-2

这是正常的,

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

isset retun布尔,

使用以下

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注入。

希望它有帮助!

+0

为什么不添加mysql_reapl_escape_string函数或类似的代码而不是仅仅提及它呢? – 2012-03-18 12:11:58

+0

,因为我没有每秒输入12个单词... - > 3分钟前的帖子波纹管 – Dax 2012-03-18 12:13:04