以最简单的方式使用PHP表单编辑mySQL记录

以最简单的方式使用PHP表单编辑mySQL记录,php,mysql,forms,Php,Mysql,Forms,这是我这个周末一直在做的一个非常基本的项目的最后一部分。我知道有更好、更安全的方法可以做到这一点,但我的资源有限。我感谢你对我的耐心 也就是说,我正在尝试编写代码,允许用户编辑数据库“Crosshill”下表“Employees”中的mySQL记录。共有4个字段-“employeeid”、“firstname”、“lastname”和“department”。我发现了一些类似的代码,我正试图修改它来处理我的项目 我使用一个名为“review.php”的页面来完成第一步,然后使用一个“update

这是我这个周末一直在做的一个非常基本的项目的最后一部分。我知道有更好、更安全的方法可以做到这一点,但我的资源有限。我感谢你对我的耐心

也就是说,我正在尝试编写代码,允许用户编辑数据库“Crosshill”下表“Employees”中的mySQL记录。共有4个字段-“employeeid”、“firstname”、“lastname”和“department”。我发现了一些类似的代码,我正试图修改它来处理我的项目

我使用一个名为“review.php”的页面来完成第一步,然后使用一个“update.php”页面来进行更改。第一页在下面,运行时返回“未找到条目”错误。它看起来连接良好,所以我认为这是代码修改中的一个错误


review.php代码:

  <?php
mysql_connect('####', 'Crosshill', '####') or die(mysql_error());
mysql_select_db("Crosshill") or die(mysql_error());

$UID = (int)$_GET['employeeid'];
$query = mysql_query("SELECT * FROM Employees WHERE employeeid = '$UID'") or die(mysql_error());

if(mysql_num_rows($query)>=1){
    while($row = mysql_fetch_array($query)) {
        $firstname = $row['firstname'];
        $lastname = $row['lastname'];
        $department = $row['department'];

    }
?>
<form action="update.php" method="post">
<input type="hidden" name="ID" value="<?=$UID;?>">
First Name: <input type="text" name="ud_firstname" value="<?=$firstname?>"><br>
Last Name: <input type="text" name="ud_lastname" value="<?=$lastname?>"><br>
Department: <input type="text" name="ud_department" value="<?=$department?>"><br>
<input type="Submit">
</form>
<?php

}else{
    echo 'No entry found. <a href="javascript:history.back()">Go back</a>';
}
?>  

看起来你有一个很好的开始。现在学习插入如下内容:

变量转储($variablename);死亡

在您的源代码中的一些地方一次调试一点。例如,尝试插入:

var_dump(mysql_fetch_数组($query));死亡

看看mysql正在返回什么


您可能还想从旧的mysql迁移到mysqli(改进版)。

您是否将此
employeeid
GET参数传递到
revisive.php
,并且它是正确的,存在行id?很抱歉,我不明白您的意思。这样做的目的只是为了能够编辑记录。我是不是遗漏了一段代码?这里只有4个字段和1个表,所以我希望能够很容易地解决这个问题。如有任何建议,我们将不胜感激。谢谢你的帮助!代码显示
revise.php
必须使用
employeeid
参数调用-然后检查数据库中是否有此员工,并显示填写了其数据的表单。因此,是否应该在用户输入该员工ID的代码段中?如果是这样的话,web上的示例中就没有了。您的代码中可能存在SQL注入漏洞。非常感谢您的帮助。每一点调试都会有帮助,我将开始研究如何使用它。此外,这个小项目的一个限制是,我无法访问mysql的“改进”版本。这从一开始就让我很痛苦,因为我使用的是过时的代码,所以很难找到好的资源。但是,再一次-我必须使用可用的工具-不客气。您应该能够重新安装本地版本的php(如果您运行的是localy),并添加mysqli库。如果您在一个无法访问的服务器上运行php,我认为现在所有服务器都安装了这个库。同时将其放入一个php文件中并运行它以查看您的功能:Apache可以工作。




<?php
mysql_connect('####, 'Crosshill', '####') or die(mysql_error());
mysql_select_db("Crosshill") or die(mysql_error());

$ud_ID = (int)$_POST["ID"];

$ud_firstname = mysql_real_escape_string($_POST["ud_firstname"]);
$ud_surname = mysql_real_escape_string($_POST["ud_lastname"]);
$ud_FBID = mysql_real_escape_string($_POST["ud_department"]);


$query="UPDATE Employees
            SET firstname = '$ud_firstname', lastname = '$ud_lastname', department = '$ud_department' 
            WHERE ID='$ud_ID'";


mysql_query($query)or die(mysql_error());
if(mysql_affected_rows()>=1){
    echo "<p>($ud_ID) Record Updated<p>";
}else{
    echo "<p>($ud_ID) Not Updated<p>";
}
?>