【发布时间】:2014-04-07 18:56:06
【问题描述】:
我正在尝试创建一个数据库类并希望在其中包含 real_escape 字符串,但每当我这样做时,我都没有得到任何结果。请帮忙:
<!DOCTYPE html>
<head>
<title>PHP Classes</title>
</head>
<body>
<?php
class Database
{
function Database($host, $user, $pass, $db){
$this -> con = mysqli_connect($host, $user, $pass, $db);
}
function runQuery($query){
mysqli_query($this -> con, $query);
}
}
?>
<?php
$database = new Database("localhost", "root", "", "website");
$database -> runQuery("DELETE FROM subject WHERE name = 'Footer'");
?>
</body>
</html>
【问题讨论】:
-
仅凭这段代码是不可能的。这完全取决于如何使用此代码。如果程序只将硬编码查询传递给
runQuery方法,那么它是安全的。如果它动态构建 SQL,它很可能容易受到 SQL 注入攻击。换句话说,SQL 注入不是单个函数或类的问题,而是整个应用程序的问题。 -
查看准备好的语句和参数化查询 - How can I prevent SQL injection in PHP?
-
它将被从我到我的用户的每一个人使用
-
为什么不能在runQuery函数中在mysqli_query之前使用?
-
请放更多代码和示例