簡體   English   中英

查詢在mysql終端中起作用,但在php中不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM