【发布时间】:2012-04-23 13:57:49
【问题描述】:
PHP 和 mySQL 问题我希望你能帮助我。我有一个更新数据库选项(通过单击一个按钮,它会运行 update.php 文件),现在这个 update.php 负责尝试分离我的 PASSENGER 表。
目前,我有一个巨大的 PASSENGER 表,如果今天发生了与公司的旅行(它是一家旅行预订公司),那么他们在 CUSTOMER 表中,但我想要任何存档的客户(例如,任何人从昨天开始倒退,放入 ARCHIVED_CUSTOMER 表中。
现在,我有一个小的 PHP 脚本,它使用当前 PASSENGER 表中的信息添加到 ARCHIVED_PASSENGER 表中,但仅限于参数是 PASSENGER ID 的地方。
我对脚本的 DELETE FROM PASSENGER 部分非常满意,但想知道是否有人知道可以让我从数据库中收集和移动大量信息的代码,其中旅行日期是昨天起等等。它是通过 PASSENGER 表的 activeUntil 部分完成的。
非常精简的 PHP 脚本,但希望我已经说清楚了!
mysql_connect("localhost", "mysql_username", "mysql_password") or die(mysql_error());
mysql_select_db("mysql_database") or die(mysql_error());
$query10 = ("SELECT p.surname, p.passNo, p.activeUntil FROM PASSENGER p WHERE passNo = '20120003'");
$result = mysql_query($query10);
while($row = mysql_fetch_array($result))
{
$surname = $row['surname'];
$passNo = $row['passNo'];
mysql_query("INSERT INTO ARCHIVED_PASSENGER (surname, passNo) VALUES ('$surname', '$passNo') ")
or die(mysql_error());
mysql_query("DELETE FROM PASSENGER (surname, passNo) VALUES ('$surname', '$passNo') ")
or die(mysql_error());
}
【问题讨论】:
-
小心SQL注入!!你的代码很容易受到攻击!
-
@Romain 请指出注入漏洞。我没看到。
-
@Kolink
"INSERT INTO ARCHIVED_PASSENGER (surname, passNo) VALUES ('$surname', '$passno')"。当乘客的姓氏是(随机选择)"D'Artagnan"时会发生什么?这是一种无害的复杂间接注入,但至少是合理/可能的崩溃来源。 -
啊,我的假设是数据已经在数据库中......当然。请注意,通过我的回答中的组合查询,这个问题被消除了,所以我猜我们最终都没有错。
标签: php mysql sql sql-insert sql-delete