更新数据非常简单.让我们从一个表单开始,对于初学者:
此表单将数据发送到我们的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??注入,以及如何避免它们.我在这里提供的代码仅仅是一个例子.输入我们的值后,将要运行的查询实际上如下所示:
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-accounts凭证存储在数组中,并将它们传递给connect-function.这段代码应该是不言自明的,但是如果它根本不清楚,请告诉我.
一旦你有了,你就可以运行你的查询了.请记住,我们将它存储在一个名为$sql的数组中:
$result = mysql_query( $sql ) or die( mysql_error() );
而已.你做到了!数据(假设没有出错)现在在您的数据库中更新.有许多方法可以通过此脚本增加提供给用户的信息.另外值得注意的是,你甚至想要在允许脚本运行之前清理你的数据 – 如果它不是可接受的数据(某人试图注入他们自己的查询)你会想要吐回它.