我正在尝试在我的课程中使用 PDO 语句。我是 oop 的新手,我正试图弄清楚它应该如何完成。我查看了该站点上的一些示例,并使用了它们的逻辑,但它们似乎都不起作用。源代码中没有致命错误或警告,但从未执行过 sql 语句。所以我觉得我只是错过了一件我还没有学到的小东西。
到目前为止,我了解到的是 PDO 连接必须在一个类中进行,并且应该通过构造函数方法调用。我从其他人那里得到了数据库类的代码。
class Database
{
protected static $Connection;
public static function Connect()
{
if((self::$Connection instanceof PDO) === false)
{
$dbhost = 'host';
$dbname = 'name';
$dbuser = 'user';
$dbpass = 'pass';
self::$Connection = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
}
return self::$Connection;
}
}
这只是类的一个函数中的构造函数和一个示例 PDO 语句
class blahJR extends blah
{
private $Database;
function __construct ($sUser)
{
parent::__construct($sUser);
//Updated below: $this->Database = Database::Connect();
$this->Database = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass); //All the variables are given and the connection is definitely being made
} //end __construct
public function foo($sString)
{
try
{
$Statement = $this->Database->prepare("INSERT INTO table (column) VALUES (?)");
$Statement->execute(array($sString));
}
catch (PDOexception $e)
{
DatabaseError($e);
}
}
任何帮助将不胜感激。感谢您的时间。
更新:我在 try 语句周围添加了该函数以使其更清晰,它始终存在,只是在我提出问题时从未添加它。我希望能澄清它。它仍然没有报告任何错误。我不知道为什么这不起作用。