PHP,PDO,这个功能是安全的,如果不是我需要在这里涵盖的其他内容

时间:2014-06-10 07:50:34

标签: php pdo

PDO连接是:

  public function __construct(){
    $this->conn = new PDO("mysql:host=localhost;dbname=dms","root","");
    $this->conn->exec("SET CHARACTER SET utf8");
}

现在这里是获取所需行结果的函数。

public function getAny() {
            $stmt9 = $this->conn->prepare("SELECT * FROM " . self::$table_name);
            $stmt9->execute();
            return $stmt9 = $stmt9->fetchAll();
            }

在此视图之后,我们将在运行该函数后获取行。 这是view.php

         $doc = $organ->getAny();
         if(count($doc)){
            foreach($doc as $data){
                    echo $data['id'] . "<br />";
                            echo $data['nameARABIC'] . "<br />";
                    }

这个view.php是安全的,我应该做些什么来保障更多。 问候

1 个答案:

答案 0 :(得分:0)

你做的事情非常安全,不过我建议你使用&#34; SET NAMES UTF8&#34;而不是&#34;设置字符集&#34;。或者更好,如果您使用php&gt; = 5.3.6,您可以使用&#34; charset&#34;参数INSIDE DSN。 Further information

另外,为避免SQL注入,您应该始终避免将用户的输入放在字符串中,然后将其用于SQL。例如。如果self :: $ table_name是用户输入(虽然它不是),你应该小心并做两件事之一:

最后:

return $stmt9 = $stmt9->fetchAll();

将返回分配是否已完成(无论是真还是假,不是$ stmt9-&gt; fetchAll()的内容)。

正如YourCommonSense所指出的,最后一部分描述的行为是不正确的。