[英]query works in mysql terminal but not in php
我在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 />";
指令正在更改查詢並使它成為無效的SQL。 為什么不使用echo $query . "<br />";
echo $query . "<br />";
?
這個問題是這樣的:
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.