【问题标题】:Using class with PDO使用带有 PDO 的类
【发布时间】: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");

标签: php class pdo


【解决方案1】:

此代码包含语法错误、速记和全局变量。不,它不够好用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 2011-01-26
    • 2020-11-09
    • 2019-09-27
    • 2013-11-12
    • 1970-01-01
    • 2017-04-08
    相关资源
    最近更新 更多