下面这是我在php中的类数据库
<?php
class DB
{
private $SQLcommand;
private $bd;
public function setSQLcommand($valor)
{
$this->SQLcommand = $valor;
}
public function getSQLcommand()
{
return($this->SQLcommand);
}
function __construct()
{
$this->bd = new PDO("mysql:host=localhost;dbname=cpd", "root", "");
}
public function ExecSQL()
{
if ($this->SQLcommand != "")
return($this->bd->exec($this->SQLcommand));
else
return(false);
}
public function ExecSelect()
{
if ($this->SQLcommand != "")
{
$data = $this->bd->query($this->SQLcommand);
return($data->fetchAll());
}
else
return(false);
}
function __destruct()
{
$this->bd = null;
}
}
?>
以下是我实例化的方式
include_once 'db_class.php';
$e = new DB();
$e->setSQLcommand("INSERT INTO characteristic (id_charac,name_charac)
VALUES ('','".$_POST["nomecharac"]."')");
$e->ExecSQL();
$p = new DB();
$p->setSQLcommand("select * from characteristic");
$data = $p->ExecSelect();
我会问我在代码中的哪个位置我可以尝试一下catch,如果发生错误,try catch会重定向到文件maintenance.php,并阻止银行的用户和密码显示...谢谢大家。 ..
答案 0 :(得分:2)
首先,我要使用准备好的陈述;有人可以将他们想要的东西放到$ _POST [“nomecharac”]中,这可以让他们运行他们想要的命令。
至于放置try-catch的位置,如果你想要总是重定向到maintenance.php,请把它放在类中。否则,将它放在实例化中。
干杯!
答案 1 :(得分:2)
您可以输入构造函数__construct()
try {
$this->bd = new PDO("mysql:host=localhost;dbname=cpd", "root", "");
} catch (PDOException $e) {
die('Database connection could not be established.');
}
答案 2 :(得分:1)
您的数据库类不应该知道您的应用程序必须重定向到特定页面,只知道发生了异常。