但是你这代码不支持预处理啊
时间: 2024-02-25 07:58:11 浏览: 20
非常对不起,我的代码确实没有使用PDO预处理语句来执行SQL查询,这是一个安全性问题。下面是一个更安全的示例代码,它使用PDO预处理语句来执行SQL查询:
```php
class Database
{
private $host = "localhost";
private $username = "username";
private $password = "password";
private $dbname = "database_name";
private $pdo;
public function __construct()
{
$dsn = "mysql:host=$this->host;dbname=$this->dbname";
$options = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);
try {
$this->pdo = new PDO($dsn, $this->username, $this->password, $options);
} catch (PDOException $e) {
die("Connection failed: " . $e->getMessage());
}
}
public function query($sql, $params = array())
{
$stmt = $this->pdo->prepare($sql);
$stmt->execute($params);
return $stmt;
}
// 其他数据库操作方法...
}
```
在其他页面中,你可以这样来调用带有预处理语句的查询方法:
```php
$db = new Database();
$stmt = $db->query("SELECT * FROM users WHERE id = :id", array(':id' => 1));
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
```
这样,你就可以使用PDO预处理语句来执行安全的SQL查询了。