【问题标题】:Good tutorial on how to update your Mysql database with a PHP form? [closed]关于如何使用 PHP 表单更新 Mysql 数据库的好教程? [关闭]
【发布时间】:2013-05-06 05:58:42
【问题描述】:

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

【问题讨论】:

  • mysql php form tutorial怎么样
  • @Felix:我是 PHP 新手,我怎么知道它的教程是好是坏?
  • 根据我的经验,大多数教程都不错。做一个谷歌并使用I'm Feelin' Lucky按钮:)

标签: php mysql


【解决方案1】:

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

<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 和 Value 值:

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-injections 以及如何避免它们。我在这里提供的代码只是一个例子。输入我们的值后,将运行的查询实际上如下所示:

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 凭据存储在数组中,并将它们传递给连接函数。这段代码应该是不言自明的,但如果不清楚,请告诉我。

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

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

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

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

【讨论】:

  • 我尝试像这样使用 PHP 更新我的表单,但它不会工作。