无法更新申请表的现有数据

时间:2010-02-05 19:57:17

标签: php

我正在编辑我的申请表。所以我在这里告诉你......我已经登录了

  • 首先,我在主页上提供编辑链接(edit_profile1.php)
  • 我再次要求输入用户名和密码,以便未经授权的用户无法在您的个人资料中进行编辑
  • 在edit_profile1.php上没有我检查用户发送的用户名和密码到用户名和密码存储在数据库中
  • 如果用户名和密码正确,我将被重定向到edit_profile2.php
  • 这里我创建的表单与填写申请表时使用的文本框相同(我使用相同的名称作为框)。这是一个名称更新的按钮

对于最后一页edit_profile3.php,我在这里给出了coading

<?php

    $con=mysql_connect("localhost","root","");
        if(!$con)
        {
        die('Could Not Connect:'.mysql_error());
        } 
        mysql_select_db("tcs",$con);

$usr=$_POST["username"];                 
$pwd=hash('sha1',$_POST['password']);   

$query="select * from employee where Username='$usr' and Password='$pwd'";   

$result=mysql_query($query,$con);


if ($result) 
{

$row=mysql_fetch_array($result);
$sql="update employee set ($row['Username']=$usr,$row['Password']=$pwd");

$deepak=mysql_query($sql,$con);

if($deepak)
{
    echo "Updation Successfull"
}

}
  ?&GT;

现在,当我执行此错误时,就会发生这样的错误 解析错误:语法错误,意外T_ENCAPSED_AND_WHITESPACE,在第21行的F:\ Study Material \ Linux \ xampp \ htdocs \ edit_profile3.php中期待T_STRING或T_VARIABLE或T_NUM_STRING

Line number 21 is 
 $sql="update employee set ($row['Username']=$usr,$row['Password']=$pwd");

不,我没有得到我错的地方.Plz还告诉我有没有其他方法可以更新申请表格的任何其他逻辑。请查看上面的。

3 个答案:

答案 0 :(得分:1)

除了其他人已经指出的括号问题外,不应该这样吗?

"update employee set password=$pwd WHERE username=$usr"

如果您还想更改用户名,请执行以下操作:

"update employee set username=$new_username, password=$pwd WHERE username=$old_username"

有关语法的说明,请参阅UPDATE documentation for MySQL

此外,将这样的字符串直接放入SQL查询中是有风险的 - 如果你不小心你可能会留下SQL注入的无敌性。您应该使用查询参数来确保您的代码是安全的。从this question on StackOverflow了解更多信息。

答案 1 :(得分:0)

您的右括号)位于查询字符串之外。

使用带有语法高亮的PHP编辑器,它们可以帮助您立即查看此类问题。

并且the PHP manual非常好,并且总是很方便。

答案 2 :(得分:0)

声明写得不正确:

$sql="update employee set ($row['Username']=$usr,$row['Password']=$pwd)";

报价必须在')'之后。