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是安全的,我应该做些什么来保障更多。 问候
答案 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所指出的,最后一部分描述的行为是不正确的。