我已经在网上搜索了这个众所周知的问题的解决方案,但所有这些似乎都是由于未安装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
答案 0 :(得分: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>";
}
?>