[mysql]消息找不到驱动程序' 'PDOException' 异常

标签: html5 MySQL PHP HTML
发布时间: 2016/10/15 6:50:19
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我搜索的 web 解决方案对于这个众所周知的问题,但他们都似乎引起 mysql 驱动程序未安装。我检查我自己还有 mysql 安装所以我不知道什么导致这个问题。 我的代码︰

<?php

try 
{
    $db = new PDO('myqsl:host=localhost, dbname=stagepeer', 'root', 'root');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

    $sql = $db->prepare("INSERT INTO werknemers (naam, achternaam, wachtwoord, telefoonnummer, plaatsnaam, email) VALUES(:naam, :achternaam, :wachtwoord, :telefoonnnummer, :plaatsnaam, :email)");
    $sql->execute(array(":naam"=>$voornaam, ":achternaam"=>$achternaam, ":wachtwoord"=>$wachtwoord, ":telefoonnummer"=>$telefoonnummer, ":plaatsnaam"=>$plaatsnaam, ":email"=>$email));


if (empty($_POST['voornaam']))
{
    echo "Voornaam ontbreekt" . "<br>";
} 
else
{
    $voornaam = $_POST['voornaam'];
}
if (empty($_POST['achternaam']))
{
    echo "Achternaam ontbreekt" . "<br>";
} 
else
{
    $achternaam = $_POST['achternaam'];
}
if (empty($_POST['plaatsnaam']))
{
    echo "Plaatsnaam ontbreekt" . "<br>";
} 
else
{
    $plaatsnaam = $_POST['plaatsnaam'];
}
if (empty($_POST['gebruikersnaam']))
{
    echo "Email ontbreekt" . "<br>";
} 
else
{
    $email = $_POST['gebruikersnaam'];
}
if (empty($_POST['telefoon']))
{
    echo "Telefoonnummer ontbreekt" . "<br>";
} 
else
{
    $telefoon = $_POST['telefoon'];
}
if (empty($_POST['wachtwoord']))
{
    echo "Wachtwoord ontbreekt" . "<br>";
} 
else
{
    $wachtwoord = $_POST['wachtwoord'];
}

}
catch(PDOException $ex) 
{
    echo $ex . "error";
}  
?>

这是完整的错误

exception 'PDOException' with message 'could not find driver' in /Applications/MAMP/htdocs/Vacaturesite/registratie.php:5 Stack trace: #0 /Applications/MAMP/htdocs/Vacaturesite/registratie.php(5): PDO->__construct('myqsl:host=loca...', 'root', 'root') #1 {main}error

解决方法 1:

这是一个简单的错误,我看到你固定驱动程序错误。 然而你运行查询给变量赋值之前,他们在这一点上是未定义︰

  • 你应该调整你的代码来验证后查询不是相反
  • 使用isset()
  • 避免不必要的变量

<?php
if (isset($_POST['voornaam'], $_POST['achternaam'], $_POST['plaatsnaam'], $_POST['gebruikersnaam'], $_POST['telefoon'], $_POST['wachtwoord']))
{
$params = array(":naam"=>$_POST['voornaam'], 
                ":achternaam"=>$_POST['achternaam'], 
                ":wachtwoord"=>$_POST['plaatsnaam'], 
                ":telefoonnummer"=>$_POST['gebruikersnaam'], 
                ":plaatsnaam"=>$_POST['telefoon'], 
                ":email"=>$_POST['wachtwoord'])

    try 
    {
        $db = new PDO('myqsl:host=localhost, dbname=stagepeer', 'root', 'root');
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

        $sql = $db->prepare("INSERT INTO werknemers (naam, achternaam, wachtwoord, telefoonnummer, plaatsnaam, email) VALUES(:naam, :achternaam, :wachtwoord, :telefoonnnummer, :plaatsnaam, :email)");
        $sql->execute($params);
    }catch(PDOException $ex) 
    {
        echo $ex . "error";
    }  
}else{
    echo "Fields ontbreekt" . "<br>";
}
?>
官方微信
官方QQ群
31647020