Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 连接失败:找不到驱动程序_Php_Mysql_Pdo - Fatal编程技术网

Php 连接失败:找不到驱动程序

Php 连接失败:找不到驱动程序,php,mysql,pdo,Php,Mysql,Pdo,我使用的是Windows 10,我使用的是WAMP。我正在尝试用准备好的PDO语句创建一个登录表单。下面是发出错误的connect.php脚本的代码:“连接失败:找不到驱动程序” WAMP表示“无dll文件”用于: -php_mysqli -php_-pdo 我在wamp/bin/php5.6.25/和wamp/bin/php5.6.25/ext/中有“php_pdo”dll文件,以防万一。 我找不到php_mysqli的下载,但我认为PDO不需要它,不过如果有人有下载链接,那就太好了 所以我的

我使用的是Windows 10,我使用的是WAMP。我正在尝试用准备好的PDO语句创建一个登录表单。下面是发出错误的connect.php脚本的代码:“连接失败:找不到驱动程序”

WAMP表示“无dll文件”用于: -php_mysqli -php_-pdo

我在wamp/bin/php5.6.25/和wamp/bin/php5.6.25/ext/中有“php_pdo”dll文件,以防万一。 我找不到php_mysqli的下载,但我认为PDO不需要它,不过如果有人有下载链接,那就太好了


所以我的问题是,我只是把dll文件安装到了错误的目录中,还是怎么了?我不知道该怎么办,但我只是安装了WAMP,不能使用PDO。我是否应该使用另一个客户端(我不确定它们的名称)。

我认为您有输入错误,请尝试
mysql
而不是
msqli

$conn = new PDO("mysql:host=$server;dbname=$db", $username, $password);
还从评论中可以看出:


  • 尝试将其放入php.ini:extension\u dir=“c:\php5\ext”并指向扩展名
  • 将php_pdo.dll移到其他pdo扩展之前,然后重新启动WAMP

  • 编辑:我决定把我的答案改成一个社区维基,因为我觉得这不应该有任何代表。另外,这个问题不止一个原因


    原始答复:

    语法是:

    • mysql:host
    而不是
    mysqli
    。我希望这不是你在新PDO(msqli:host

    $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
    
    根据手册:

    注意:Wamp应该准备好使用“开箱即用”,并且不需要添加任何驱动程序

    我也使用Wamp和xampp,从来没有遇到过问题

    另外,Wamp安装有不同的风格(32位和64位),因此请确保选择正确的

    您还可以尝试安装xampp

    还可以使用错误报告,这在这里会有所帮助:


    在命令行中执行
    php-m
    时,是否可以看到任何带有PDO的条目?请尝试将其放入php.ini:
    extension\u dir=“c:\php5\ext"
    指向扩展并将php_pdo.dll移到其他pdo扩展之前,然后重新启动WAMPI注意到我在此之前发布答案的地方的编辑。我看到了您的答案并更正了,我只在一开始注意到了输入错误。谢谢此答案在其他答案的未标记编辑之前发布,其他人应该在此处进行回答我一下子就发现了
    mysqli
    ,甚至在打字错误的原始帖子之前。我知道我的PDO语法。很明显,他们在编辑之前看到了我的答案。我不在乎这方面的要点,这是问题的原则。另外,我不在乎别人把话塞进我的嘴里。我知道我说了什么t我没有说“没有”,所以让我们保持记录的正确性。如果您没有安装FireBird注释
    ;extension=php_pdo_FireBird.dll
    ,因为这将产生错误,除非它可以找到
    fbclient.dll
    ,如果您没有安装Oracle客户端,也可以注释掉
    ;extension=php_pdo_oci.dll
    $conn = new PDO("mysql:host=$server;dbname=$db", $username, $password);
    
    $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);