在表名数组上运行SQL查询

时间:2013-02-12 22:08:28

标签: php sql

我是SQL新手,我目前有一个字符串数组,表示数据库中表的名称。我希望在遍历表名时运行这样的查询:

$sql = "UPDATE $tablename SET name = '$name', id ='$id' WHERE rank = '$rank'";

然而,这不起作用,并且我已经读过,使用上述类型的方法可能会出现SQL注入。

任何人都可以推荐一种解决方法,谢谢。

3 个答案:

答案 0 :(得分:2)

这应该给你一个大致的想法。为了解决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
}

答案 1 :(得分:0)

对所有变量(最好是mysqli_real_escape_string$name)使用$rank函数,它将转义任何可能导致sql注入的引号。

Function Reference

答案 2 :(得分:-2)

你是对的,你的方法非常不安全。

浏览此列表并选择适合您的方式:Good PHP ORM Library?