我是 SQL 新手,我目前有一个字符串数组,它们代表数据库中表的名称。我想在遍历表名时运行这样的查询:
$sql = "UPDATE $tablename SET name = '$name', id ='$id' WHERE rank = '$rank'";
但是,这不起作用,我读到使用上面的这种方法可能会出现 SQL 注入。
任何人都可以推荐一种解决此问题的方法,谢谢。
这应该给你一个大致的想法。为了解决 SQL 注入问题,我建议您使用 PDO 或其他库调查准备好的查询。http://php.net/manual/en/pdo.prepared-statements.php
foreach($tables as $tablename){
$sql = "UPDATE $tablename SET name = '$name', id ='$id' WHERE rank = '$rank'";
// execute query
}
对所有变量使用mysqli_real_escape_string
函数(最好是$name
and $rank
),它将转义任何可能导致 sql 注入的引号。
你是对的,你的方法很不安全。
浏览此列表并选择更适合您的:好的 PHP ORM 库?