2016-06-09 67 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 –