【发布时间】:2012-07-27 16:35:52
【问题描述】:
我决定在这里推荐后使用 PDO,我在下面找到了这段代码。这些代码足以防止 SQL 注入?上课是更好的选择吗?
<?
class database {
private $hostname;
private $database;
private $username;
private $password;
private $pdo;
function __construct($hostname, $database, $username, $password) {
$this->pdo = new PDO("mysql:host={$this->hostname};port={$this->port};dbname={$this->database}", $this->username, $this->password, array(PDO::ATTR_PERSISTENT => true));
} catch(PDOException $e) {
print "<b>Error - Connection Failed: </b>" . $e->getMessage() . "<br/>";
die();
}
}
public function query($query, $bind = null) {
global $pdo;
$this->statement = $this->pdo->prepare($query);
$this->statement->execute($bind);
}
$date = date("Y-m-d H:i:s", time());
$database->query('INSERT INTO users_inactive(verCode, username, password, email, date) VALUES (?, ?, ?, ?, ?)', array($verCode, $username, $password, $email, $date));
$success[] = "You account has been created!";
?>
【问题讨论】:
-
一目了然,我可以发现这段代码至少有 3 个问题。不要使用它。
-
快速提问:在使用
$database之前,您是否真的将其初始化为database-class 对象? -
是的 Palladium,代码当前运行没有问题 $database = new database("localhost", "test", "root", "rootpass");