2016-06-09 65 views
-1

我的查詢總是返回 - 回顯「Menu update failed」;.更新查詢中有什麼不對嗎?或者在html表單中出現錯誤? (我知道我使用mysqli但它只是一個實驗,所以我不關心它。請不要對mysqli的建議)mysql更新查詢總是返回失敗

$q = mysql_query("SELECT * FROM menu"); 
echo '<form action="" method="post">'.'Desired Name:<input type="text" name="desname">'.'<select name="tobeupdate">'.'<br>'; 
while ($row = mysql_fetch_array($q)) { 
    $menu_name = $row['menu_name']; 
    echo '<option value="'.$menu_name.'">'.$menu_name.'</option>'; 
} 
echo '</select><br> 
    <input type="submit" name="submit" value="Update now"> 
</form>'; 

if (isset($_POST['submit'])) { 
    $desname = $_POST['desname']; 
    $tobeupdate = $_POST['tobeupdate']; 
    if (empty($desname)) { 
     echo "Enter your desired menu name"; 
    } 
    else { 
     $q2 ="UPDATE menu SET $desname WHERE menu_name=$tobeupdate"; 
    if (mysql_query($q2)) { 
     echo "Menu update success!"; 
    } 
    else { 
     echo "Menu update failed"; 
    } 
    } 
} 
+0

$ Q2 = 「更新菜單設置$ desname WHERE MENU_NAME = $ tobeupdate」,設置desname什麼? –

+1

您可以使用mysql_error()查找確切的錯誤 –

+0

您沒有指定要更新的列。你的'UPDATE'查詢應該是這樣的:'$ q2 =「UPDATE菜單SET your_column ='$ desname'WHERE ...' –

回答

-1

在你的$ tobeupdated變量中沒有報價或雙引號。 $ tobeupdated =「'」。$ tobeupdated。「'」;

還可以指定哪些desname設置爲

+0

在這個答案中有些東西變得非常破舊。 – tadman

+0

你不會在'PHP'字符串中引用變量http://php.net/manual/en/language.types.string.php – BitAccesser

+0

引號是要傳遞給mysql的字符串變量,那需要引號http://dev.mysql.com/doc/refman/5.7/en/update.html –