关于如何使用PHP表单更新Mysql数据库的好教程?

时间:2010-03-18 00:58:37

标签: php mysql

正在寻找一个关于如何使用php表单更新mysql数据库的好教程?

1 个答案:

答案 0 :(得分:18)

更新数据非常简单。让我们从一个表格开始,对于初学者来说:

<form method="post" action="submit.php">
  <input type="text" name="id" value="12" />
  <input type="text" name="value" value="Jonathan" />
  <input type="submit" />
</form>

此表单会将数据发送到我们可以处理它的submit.php脚本,并将其传递到我们的数据库中。由于我们的表单方法是“post”,因此我们所有的值都将通过PHP中的POST超级数组发送(如果您使用的是文件上传器,则不是这种情况)。因此,在我们的submit.php页面中,我们可以打印ID和值,如下所示:

print $_POST["id"]; // the name of the HTML element is the key
print $_POST["value"]; // again, note that we use the name as the key

您需要小心将用户提交的值直接传递到查询中,因此使用mysql_real_escape_string()之类的函数清理数据会很好:

$id = mysql_real_escape_string( $_POST["id"] );
$value = mysql_real_escape_string( $_POST["value"] );

接下来我们要做的就是将它们放在查询中:

$sql = "UPDATE mytable SET value = '{$value}' WHERE id = {$id}";

现在不是说我不鼓励您在实时环境中使用此示例代码的好时机。你会想要查找sql​​注入,以及如何避免它们。我在这里提供的代码仅仅是一个例子。输入我们的值后,将要运行的查询实际上如下所示:

UPDATE mytable SET value = 'Jonathan' WHERE id = 12

现在,为了运行它,我们需要连接到数据库。

$host = "localhost"; 
$user = "root"; 
$pass = "";
$database = "myDatabase";
$conn = mysql_connect($host, $user, $pass) or die( mysql_error() );
        mysql_select_db($database) or die( mysql_error() );

我们在这里所做的就是将我们的mysql-user-account凭证存储在数组中,并将它们传递给connect-function。这段代码应该是不言自明的,但是如果它还不清楚,请告诉我。

完成后,您就可以运行查询了。请记住,我们将其存储在名为$sql的数组中:

$result = mysql_query( $sql ) or die( mysql_error() );

就是这样。你做到了!数据(假设没有出错)现在在您的数据库中更新。有许多方法可以通过此脚本增加提供给用户的信息。另外值得注意的是,你甚至想要在允许脚本运行之前清理你的数据 - 如果它不是可接受的数据(某人试图注入他们自己的查询)你会想要吐回它。

查看MySQL Functions in the PHP Documentation了解更多好处,如果您有更具体的问题,请务必返回此处!