Mysql 更新使用 php 变量给出错误


Mysql update using php variable giving error

我希望有人能帮我解决这个问题

我有一个页面显示运动队的不同成员,当用户单击特定球员时,一个新页面会打开"编辑.php",其中所选(单击)的球员信息显示在表单中。(表格中包含姓名,姓氏,电话号码和电子邮件等信息)

假设球员的名字发生了变化(不太可能,但只是一个例子),教练可以更新它。当他点击提交按钮时,数据库应该会用新信息更新

但是,当我将名称更改为 John 并单击提交时,出现以下错误:查询失败:"字段列表"中的未知列"John"

我花了最后几个小时调试这个没有运气,如果有人能指出我正确的方向,将不胜感激。代码如下:

    if(isset($_POST['submit'])){
$firstname = $_POST['firstname'];
$query = "UPDATE player_info SET name =".$firstname." WHERE player_id =".$selectedplayer;
mysql_query($query)
or die ("Query failed:" .mysql_error());
}//end if
else
{
echo '<form name="update" method="post">';
while($row =mysql_fetch_array($result)){
 $name = $row['name'];
 $surname = $row['surname'];
 $phone = $row['contact_number'];
 $email =$row['email'];
 $position = $row['position'];  
echo "Name: <input type='"text'" value= '$name' name='firstname' /><br>";
echo "Last Name: <input type='"text'" value= '$surname' /><br>";
echo "Phone nr: <input type='"text'" value= '$phone' /><br>";
echo "Email: <input type='"text'" value= '$email' /><br>";
echo "Position: <input type='"text'" value= '$position' /><br>";    
} //end while
} //end else
echo'<input type="submit" name="submit">';
echo'</form>';
你需要

$firstname变量周围加上一些引号。(如果您的字段不是整数):

$querie = "UPDATE player_info SET name ='".$firstname."' WHERE player_id =".$selectedplayer;

我假设您在输入中使用"约翰"。因为你省略了引号,所以你的MySQL看起来像SET name=John,而且由于MySQL找不到"John"作为字段,所以它会告诉你。

绝非如此:

请不要在新代码中使用mysql_*函数。它们不再维护并被正式弃用。看到红框了吗?请改为了解预准备语句,并使用 PDO 或 MySQLi - 本文将帮助您决定哪个语句。如果您选择PDO,这是一个很好的教程。

尝试像这样在名称周围加上引号

'".$firstname."'
$query = "UPDATE player_info SET name ='".$firstname."' WHERE player_id =".$selectedplayer;
相关文章: