【问题标题】:NOt able to update existing data of a application form无法更新申请表的现有数据
【发布时间】:2010-02-05 19:57:17
【问题描述】:

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

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

对于最后一页edit_profile3.php,我在这里进行编码

<?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"
}

}
?>

现在当我执行这个错误是这样的 解析错误:语法错误,意外的 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");

现在我不知道我哪里出错了。请告诉我是否有任何其他方法可以更新申请表的任何其他逻辑。请在上面查看。

【问题讨论】:

    标签: php


    【解决方案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 了解更多信息。

    【讨论】:

    • 好的,我删除了报价问题,但仍然是同样的错误..请正确退出我想编辑所有内容,不仅要编辑密码,还要编辑用户名,这就是为什么我给出命令 $sql="update employee set ($row['Username']=$usr,$row['Password']=$pwd)" 但是这不起作用
    • @Deepak:抱歉,你做错了。你以前在 SQL 中使用过 UPDATE 吗?我建议您阅读文档(请参阅我更新的答案中的链接)和一些教程,并尝试在查询浏览器中使用 UPDATE 直到您理解为止。
    • 感谢您的建议先生,以后我一定会遵循它。但是现在它的紧急先生这就是为什么我如此坚持在这里.. 关于问题可能是我无法正确地告诉您我是什么wnat.Ok plz再听一遍..首先我将所有表单数据从dataabse提取到一个表单中。我的表单只有两个字段用户名和密码。现在我想更改用户名和密码......这就是为什么我写 $row['Username'](old value)=$usr(new value) 和 $row['Password'](old value)=$pwd(new value)..plz 告诉我一次正确的代码,以便我可以抓住它并可以实施到我的项目中。plz
    【解决方案2】:

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

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

    而且the PHP manual 非常好,而且随身携带总是很好。

    【讨论】:

      【解决方案3】:

      语句写得不正确:

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

      引号必须在')'之后。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-19
        • 1970-01-01
        • 2023-03-03
        • 1970-01-01
        • 2016-10-14
        • 2014-12-27
        相关资源
        最近更新 更多