Php 我无法将外键插入数据库
警告:PDOStatement::execute:SQLSTATE[HY093]:参数无效 number:绑定变量的数量与中的令牌数量不匹配 C:\xampp\htdocs\buchandlung\gut.php,位于第144行SQL Fehler in:INSERT 分为tblbücher滴度、ISBN、Herausgabedatum、fVerlageID值、?, ?从tblverlage中选择VerlageID,其中Name='Yen On' 这是我的浏览器所说的错误,但我不知道我做错了什么。我尝试将数据插入表tblbücher。问题是,我需要插入一个外键,但我不能只显示1,2,3,4,5,。。。在输入表单中Php 我无法将外键插入数据库,php,mysql,Php,Mysql,警告:PDOStatement::execute:SQLSTATE[HY093]:参数无效 number:绑定变量的数量与中的令牌数量不匹配 C:\xampp\htdocs\buchandlung\gut.php,位于第144行SQL Fehler in:INSERT 分为tblbücher滴度、ISBN、Herausgabedatum、fVerlageID值、?, ?从tblverlage中选择VerlageID,其中Name='Yen On' 这是我的浏览器所说的错误,但我不知道我做错了什么
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>";
}
你是说你的PDO需要三个变量
VALUES(?, ?, ?, ...)
但是你指定了四个
$sql->execute(array($titel, $isbn, $herausgabedatum, $verlage))
我知道错误信息非常清楚。将Name='$verlage'更改为Name=?哦,它成功了。谢谢。我尝试了很多东西,但你在2秒内就成功了:D你能告诉我我的答案吗?代表什么?因此,我可以解决这些问题,我自己在未来请阅读文件和这里的例子:顺便说一句:在HTML中,你可以使用日元。那么,您就不需要FK的子查询了;