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

时间:2013-09-17 07:30:27

标签: php mysql

我希望有人可以帮我这个

我有一个页面显示体育团队的不同成员,当用户点击特定玩家时,新页面打开'edit.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>';

2 个答案:

答案 0 :(得分:5)

您的$firstname变量需要一些引号。 (你的领域不是整数):

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

我假设您正在使用&#39; John&#39;在你的输入中。因为你遗漏了引号,你的MySQL看起来像SET name=John,因为MySQL无法找到John&#39;作为一个领域,它告诉你。

<强>从不最少:

Please, don't use mysql_* functions in new code。它们不再维护,并且已被正式弃用。请参阅red box?转而了解prepared statements,并使用PDOMySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial

答案 1 :(得分:1)

尝试使用这个名称的引号

'".$firstname."'

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