2015-04-02 138 views
2

我在IIS上,在mssql数据库上使用PHP版本5.2.17。PDOException“找不到驱动程序”

我的数据库连接:

<?php 

    include('myPDO.class.php'); 

    myPDO::setConfiguration('dblib:host=ebase\eb105;dbname=projettest2;charset=utf8', 'user', 'password'); 

这是我的错误:

Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in E:\www\ndatest\MetierSiteClient\myPDO.class.php:51

在我的php.ini,我得到:

[PHP_PDO] 
extension=php_pdo.dll 
[PHP_PDO_MSSQL] 
extension=php_pdo_mssql.dll 

在我php.info,它显示:

PDO Driver for MSSQL DB-lib // enabled 
Flavour      // MSSQL_70 

PDO support // enabled 
PDO drivers // firebird, mssql, mysql, odbc, sqlite2 

所以,你对此有什么想法? !:( 感谢

+1

'dblib'?这应该不是'mssql:...'吗? – 2015-04-02 14:17:09

+0

好的,我被推迟了,用于在mysql和本地编程,我很迷茫在这家公司:<,谢谢! – xNeyte 2015-04-02 14:20:02

+0

好吧,除非那个DSN你传递给你的数据库lib被你的pdo wr弄坏了apper,据推测这是一个PDO dsn,你告诉它你有一个数据库,其驱动程序是'dblib'。这就像去一个车库,并说你的汽车的名字是弗雷德,他们是否有零件,没有提到它是什么品牌/型号。 – 2015-04-02 14:21:34

回答

0

尝试使用此代码:

$banco = new PDO('mysql:host=localhost;dbname=nome_do_banco', 'username','password')or die(mysql_error()); 

连接之后,如果你想使用的字符集连接,波纹管使用代码:

<?php 
define('HOST', 'localhost'); 
define('DBNAME', 'DB_BLOG'); 
define('CHARSET', 'utf8'); 
define('USER', 'root'); 
define('PASSWORD', '123456'); 

try { 
    $opcoes = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8'); 
    $pdo = new PDO("mysql:host=" . HOST . "; dbname=" . DBNAME . "; charset=" . CHARSET . ";", USER, PASSWORD, $opcoes); 
    /*$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);*/ 
} catch (PDOException $e) { 
    echo "Erro: " . $e->getMessage(); 
} 
var_dump($pdo); 
相关问题