我用PHP动态构建查询,当我尝试执行它时,它失败了。当我复制生成的查询并将其粘贴到mysql终端并运行它时,它可以正常工作。我得到的错误是“您的SQL语法有错误;请检查与MySQL服务器版本相对应的手册,以找到在第1行的'>'附近使用的正确语法”,用于以下查询:
UPDATE events SET event = 'orgo lecture', start = '2014-07-24 16:00:00' WHERE userID = 1 AND eventID = 5
以下是用于动态生成查询的代码:
$query = "UPDATE events SET ";
$query_list = array();
if ($set_event) {
$query_list[] = "event = '{$event}'";
}
if ($set_start) {
$query_list[] = "start = '{$start}'";
}
if ($set_end) {
$query_list[] = "end = '{$end}'";
}
$query_list_size = count($query_list);
for ($i = 0; $i < $query_list_size - 1; $i++) {
$query .= $query_list[$i];
$query .= ", ";
}
$query .= $query_list[$query_list_size - 1];
$query .= " WHERE userID = {$userID} AND eventID = {$eventID}";
echo $query .= "<br />";
$query_result = mysqli_query($connection, $query) or die(mysqli_error($connection));
这个问题是这样的:
echo $query .= "<br />";
应该
echo $query . "<br />";
具有讽刺意味的是,通过检查您的查询您打破了它。
作为旁注,
$query_list_size = count($query_list);
for ($i = 0; $i < $query_list_size - 1; $i++) {
$query .= $query_list[$i];
$query .= ", ";
}
$query .= $query_list[$query_list_size - 1];
可以简化为:
$query .= implode(", ", $query_list);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句