无法将PHP PDO发送到DB

时间:2016-03-24 10:03:11

标签: php pdo

我无法使用此代码将表单中的输入设置为我的数据库,我无法弄清楚原因。有没有什么可以帮助我找到你的原因?

我正在尝试使用该表单来获取用户的输入。

<form action="" method="post">
    Etternavn:<br>
    <input type="text" name="etternavn" id="etternavn" placeholder="Etternavn"><br>
    Fornavn:<br>
    <input type="text" name="fornavn" id="fornavn" placeholder="Fornavn"><br>
    Klasse:<br>
    <input type="text" name="klasse" id="klasse" placeholder="Klasse"><br>
    Mobil:<br>
    <input type="text" name="mobli" id="mobil" placeholder="Mobil"><br>
    Nettside:<br>
    <input type="text" name="www" id="www" placeholder="Nettside"><br>
    Epost:<br>
    <input type="email" name="epost" id="epost" placeholder="Epost">
    <input type="submit" name="submit" value="Submit">
</form>

这里我正在运行PHP PDO来获取数据库,并尝试将用户输入放入数据库,但我不明白为什么它不起作用。我没有收到任何告诉我任何错误的消息。

<?php


if (isset($_POST["submit"])){
    $host = "kark.hin.no";
    $dbname = "stud_v16_klemetsen";
    $username = "v16_klemetsen";
    $password = "**********";

    try {
        $dbh = new PDO("mysql:host=$host;dbname=$dbname",$username,$password);
        $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
        $q = $dbh->prepare("INSERT INTO studenter(etternavn,fornavn,klasse,mobil,www,epost)
        VALUES (:etternavn, :fornavn, :klasse, :mobil, :www, :epost");
        $q->bindParam(':etternavn',$_POST['etternavn'],PDO::PARAM_STR);
        $q->bindParam(':fornavn',$_POST['fornavn'],PDO::PARAM_STR);
        $q->bindParam(':klasse',$_POST['klasse'],PDO::PARAM_STR);
        $q->bindParam(':mobil',$_POST['mobil'],PDO::PARAM_STR);
        $q->bindParam(':adr',$_POST['www'],PDO::PARAM_STR);
        $q->bindParam(':epost',$_POST['epost'],PDO::PARAM_STR);
        $q->execute();

        $q->execute();
        echo "succssfull";

    }
    catch (PDOException $e){
        echo "ERROR" . $e->getMessage();
    }
    $dbh = null;
}
?>

2 个答案:

答案 0 :(得分:1)

$q->bindParam(':adr',$_POST['www'],PDO::PARAM_STR);

此行与您的SQL

不匹配

"INSERT INTO studenter(etternavn,fornavn,klasse,mobil,www,epost) VALUES (:etternavn, :fornavn, :klasse, :mobil, :www, :epost"

您的绑定参数必须为:www

答案 1 :(得分:-1)

此外,您在SQL查询中缺少结束右括号),它应该是:

$sql = "INSERT INTO studenter(etternavn,fornavn,klasse,mobil,www,epost)
        VALUES (:etternavn, :fornavn, :klasse, :mobil, :www, :epost)";
$q = $dbh->prepare($sql);