两个连接类都在同一个项目下:
1)这第一堂课运行良好,一切正常,因为它应该是:
<?php
class DAO{
protected $servidor;
protected $base;
protected $usuario;
protected $senha;
protected $conexao;
public function __construct(){
$this->base = "ima";
$this->usuario = 'admin';
$this->senha = 'wd4567';
$this->servidor = 'localhost';
$this->abrirConexao();
$this->selecionar();
}
protected function abrirConexao(){
$this->conexao = mysqli_connect($this->servidor, $this->usuario, $this->senha);
if (!$this->conexao) {
die("Connection failed: " . mysqli_connect_error());
}
// echo "Connected successfully";
mysqli_set_charset($this->conexao, "utf8");
}
2)使用PDO的第二个连接类返回错误:SQLSTATE [HY000] [2002]没有这样的文件或目录。但据我所知,数据集是相同的...请在此方面提供帮助:
<?php
/*
* Constantes de parâmetros para configuração da conexão
*/
define('HOST', 'localhost');
define('DBNAME', 'ima');
define('CHARSET', 'utf8');
define('USER', 'admin');
define('PASSWORD', 'wd4567');
class Conexao {
/*
* Atributo estático para instância do PDO
*/
private static $pdo;
/*
* Escondendo o construtor da classe
*/
private function __construct() {
//
}
/*
* Método estático para retornar uma conexão válida
* Verifica se já existe uma instância da conexão, caso não, configura uma nova conexão
*/
public static function getInstance() {
if (!isset(self::$pdo)) {
try {
$opcoes = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8', PDO::ATTR_PERSISTENT => TRUE);
echo("mysql:host=" . HOST . "; dbname=" . DBNAME . "; charset=" . CHARSET . "; ". USER ." ". PASSWORD . $opcoes);
self::$pdo = new PDO("mysql:host=" . HOST . "; dbname=" . DBNAME . "; charset=" . CHARSET . "; ", USER, PASSWORD, $opcoes);
} catch (PDOException $e) {
print "Erro: " . $e->getMessage();
}
}
return self::$pdo;
}
}
?>
感谢您的任何帮助,谢谢!
答案 0 :(得分:1)
您是否尝试删除DSN中的所有空白区域?类似的东西:
"mysql:host=" . HOST . ";dbname=" . DBNAME . ";charset=" . CHARSET . ";"
答案 1 :(得分:0)
试试这个例子
class Conexao {
private static $pdo;
public static function getInstance() {
if (!self::$pdo) {
self::$pdo = new PDO(
'mysql:host=localhost;dbname=ima;charset=utf8;',
'admin',
'wd4567',
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
PDO::ATTR_PERSISTENT => TRUE,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
));
}
return self::$pdo;
}
}
// Create connection
$pdo = Conexao::getInstance();
// Close connection
$pdo = null;