0

楼上的大家好,

我正在尝试为车库规划师建立一个日历系统。因此,我一直在 YT 上制作视频教程。

我几乎完成并停留在最终查询上,该查询应该在特定日期吐出“事件”。

可以在这里看到一个几乎完全工作的演示Calendar Demo 另外,我在此处提供所有文件作为下载Calendar Tutorial SRC-Code DL

问题是,它没有执行最终查询 - 我不知道为什么。此时它确实连接到数据库,但查询甚至没有回显事件的“关闭”按钮,这给了我一个概念,即脚本直到那时才继续执行。

这里是文件events.php的查询源

$deets = $_POST['deets'];
// $deets = preg_replace('#[^0-9/]#i', '', $deets);

include_once('inc/connect.inc.php');

$events = '';
$query = mysql_query('SELECT description FROM events WHERE evdate = "'.$deets.'"');
$num_rows = mysql_num_rows($query);
if($num_rows > 0){
    $events .= '<div id="eventControl"><button onMouseDown="javascript:overlay();">Close</button><br />';
    while($row = mysql_fetch_array($query)){
        $desc = $row['description'];
        $events .= '<div id="eventbody">'. $desc . '<br /><hr><br /></div>';
    }
}
echo $events;

如果有人能给我提示是什么导致触发器失败,那就太好了。

提前感谢您的想法和帮助。

问候

托比

4

1 回答 1

0

您需要处理您的代码并检查一切是否符合您的预期。

如果我理解正确,这将返回 false:if($num_rows > 0){在这种情况下,在您的查询回显之前$deets并确保它是您期望的值,因此知道它在查询中有效。

另外,尝试添加这个:

if (!$query)
  {
    die('Invalid query: ' . mysql_error());
  }
else
  {
    echo "Query ok";
  }

只是在测试时从你num_rows()的空白中删除/* */并尝试上述方法。另外,您的 PHP 错误日志中有什么有用的信息吗?

正如所指出的,mysql_ 正在贬值,您应该在 PDO 或 mysqli 中使用准备好的语句。在您的查询中使用它之前,至少mysql_real_escape_string()在您的 var 上$deets使用它......

于 2013-08-26T01:22:14.293 回答