0

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

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

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

但是,当我将名称更改为 John 并单击提交时,我收到以下错误: Query failed:Unknown column 'John' in 'field list'

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

    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>';
4

2 回答 2

5

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

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

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

尽管如此:

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

于 2013-09-17T07:33:02.030 回答
1

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

'".$firstname."'

$query = "UPDATE player_info SET name ='".$firstname."' WHERE player_id =".$selectedplayer;
于 2013-09-17T07:33:58.647 回答