所以我有一些PHP连接到我的数据库,我正在使用MAMP运行,但它看起来不起作用。这是我的class.database.php(对不起代码有点乱)。你认为这可能是问题还是我的代码中的其他内容?谢谢你的帮助。
<?
class dbConnection {
protected $db_conn;
public $db_name = 'todo';
public $db_user = 'root';
public $db_pass = 'root';
public $db_host = 'localhost';
function connect(){
try{
$this->db_conn = new PDO("mysql:host=$this->db_host;db_name=$this",$this->db_user,$this->db_pass)
return $this->db_conn;
}
catch(PDOException $e)
{
return $e->getMessage();
}
}
}
?>
答案 0 :(得分:1)
您需要替换
db_name=$this
与
db_name=$this->db_name
此外,您需要在该行的末尾放置一个分号。
有了这些错误,你应该得到PHP和PDO错误。检查PHP日志中的错误。您还可以使用“php myscript.php”从命令行运行脚本以查看错误(尽管您需要一些东西来调用您的类)。要显示PDO错误,请在“新PDO”行下方添加以下行:
$this->db_conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
答案 1 :(得分:0)
你应该替换
db_name=$this
与
db_name=$this->db_name
此外,您需要在该行的末尾放置一个分号。 这是你的代码,我改变它。我测试这段代码并为我工作。我希望为你工作。
<?php
class dbConnection {
protected $db_conn;
public $db_name = 'todo';
public $db_user = 'root';
public $db_pass = 'root';
public $db_host = 'localhost';
function connect(){
try{
$this->db_conn = new PDO("mysql:host=$this->db_host;db_name=$this->db_name",$this->db_user,$this->db_pass);
return $this->db_conn;
}
catch(PDOException $e)
{
return $e->getMessage();
}
}
}
?>
答案 2 :(得分:0)
您的语法错误:
try {
$conn = new PDO('mysql:host=localhost;dbname=myDatabase', $username, $password);
^^^^^^
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}