我无法将外键插入我的数据库

时间:2018-03-10 12:44:58

标签: php mysql

  

警告:PDOStatement :: execute():SQLSTATE [HY093]:参数无效   number:绑定变量的数量与令牌的数量不匹配   第144行的C:\ xampp \ htdocs \ Buchhandlung \ gut.php SQL Fehler in:INSERT   INTOtblbücher(Titel,ISBN,Herausgabedatum,fVerlageID)VALUES(?,?,   ?,(选择VerlageID FROM tblverlage,其中Name ='Yen On'))

这是我的浏览器所说的错误,但我不知道我做错了什么。我尝试将数据插入到我的表“tblbücher”中。问题是,我需要插入一个外键但我不能在输入表单中只显示“1,2,3,4,5 ......”

    if ($titel!="" and $isbn!="" and $herausgabedatum!="" and $verlage!="" )
    {
    $sql=$dbh->prepare("INSERT INTO tblbücher (Titel, ISBN, Herausgabedatum, fVerlageID) VALUES(?, ?, ?, (Select VerlageID FROM  tblverlage Where Name='$verlage'))");
    $sql->execute(array($titel, $isbn, $herausgabedatum, $verlage)) or die("SQL Fehler in: ".$sql->queryString." <br /> ".$sql->errorInfo()[2]);
    echo"<h1>Folgende Daten wurden der Tabelle Orte hinzugefügt:</h1></br> ";
    echo "<table>";
    echo

"<tr><th>Titel</th><th>Herausgabedatum</th><th>Name des Verlags</th><th>fVerlageID</th></tr>";
echo "<tr><td>$titel</td><td>$isbn</td><td>$herausgabedatum</td><td>$verlage</td></tr>";

}

This is how my input form looks like. You see that I need to call the "Verlag" "Yen On" instead of the foreign key "1" because it looks much better, but it doesn't work

1 个答案:

答案 0 :(得分:1)

您说PDO中需要三个变量

VALUES(?, ?, ?, ...)

但是你要指定四个

$sql->execute(array($titel, $isbn, $herausgabedatum, $verlage))