两个连接类都在同一项目下:
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;
}
}
?>
感谢您在这方面的帮助,谢谢!
您是否尝试删除DSN中的所有空白?类似于:
"mysql:host=" . HOST . ";dbname=" . DBNAME . ";charset=" . CHARSET . ";"
试试这个例子
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;