异常 'PDOException',消息 'could not find driver'
exception 'PDOException' with message 'could not find driver'
我在网上搜索了这个众所周知的问题的解决方案,但似乎都是由于未安装 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
这是一个简单的错误,我看到您修复了驱动程序错误。
但是,您 运行 在分配变量之前进行查询,此时它们是未定义的:
- 您应该调整您的代码以在验证后查询而不是
对面
- 使用
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>";
}
?>
我在网上搜索了这个众所周知的问题的解决方案,但似乎都是由于未安装 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
这是一个简单的错误,我看到您修复了驱动程序错误。 但是,您 运行 在分配变量之前进行查询,此时它们是未定义的:
- 您应该调整您的代码以在验证后查询而不是 对面
- 使用
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>";
}
?>