-1

错误发生在第 42 行:

$result->bind_param("ssssisssss", $Firma, $Partner, $Abteilung, $Strasse, $PLZ, $Ort, $Telefon, $Email, $Website, $Info );

这是整个准备好的声明:

$sql = "INSERT INTO `firmen` (`Firma`, `Ansprechpartner`, `Abteilung`, `Strasse`, `PLZ`, `Ort`, `Telefon`, `Email`, `Website`, `Zusatzinfos`) 
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";     
$result = $db->prepare( $sql ); 
$result->bind_param("ssssisssss", $Firma, $Partner, $Abteilung, $Strasse, $PLZ, $Ort, $Telefon, $Email, $Website, $Info );
$result->execute();

我找不到错误,我已经阅读了几乎所有相同错误的问题,并且我还将我的代码与很多教程进行了比较,它看起来完全一样......

提前致谢!

4

5 回答 5

2

...通常当您在准备语句中出现错误时会发生这种情况,您可能会在 sql 准备中出现拼写错误。来验证这一点。用这个检查错误

       $stmt = $this->db->prepare("INSERT INTO ".TB_ADMINISTRATION."(name, password, email) VALUES (?, ?, ?)"); 
       if(!$stmt)  //if there is an error, then it will be shown!. 
         { // show error                                                                                                       
          echo $this->db->error;
          } else {
           // everything is good to go !. 
         }
于 2014-10-08T13:12:48.060 回答
0

在这里,插入语句中有 10 个值

$sql = "INSERT INTO `firmen` (`Firma`, `Ansprechpartner`, `Abteilung`, `Strasse`, `PLZ`, `Ort`, `Telefon`, `Email`, `Website`, `Zusatzinfos`)

你给了11个bind->param()像这样的参数

$result->bind_param("ssssisssss", $Firma, $Partner, $Abteilung, $Strasse, $PLZ, $Ort, $Telefon, $Email, $Website, $Info );

所以你必须更正参数的数量。因此,要么在插入语句中添加另一列,要么从插入语句中删除一个值bind->param()并保持插入语句不变。

于 2013-10-08T10:07:42.820 回答
0

一个额外的参数,所以我删除了第一个参数:更改以下

$result->bind_param("ssssisssss", $Firma, $Partner, $Abteilung, $Strasse, $PLZ, $Ort, $Telefon, $Email, $Website, $Info );

$result->bind_param($Firma, $Partner, $Abteilung, $Strasse, $PLZ, $Ort, $Telefon, $Email, $Website, $Info );
于 2013-10-08T10:06:11.857 回答
0

正如错误消息所说,$result似乎不是一个对象。var_dump($result);尝试在准备调用后立即使用来调试它。

看起来您正在使用 PHP 的 PDO。在这种情况下,请查看文档。

如果数据库服务器成功准备语句,PDO::prepare() 返回一个 PDOStatement 对象。如果数据库服务器无法成功准备语句,则 PDO::prepare() 返回 FALSE 或发出 PDOException(取决于错误处理)。

另外,什么是“sisssssss”?需要 10 个值,然后插入 11。

嗯,改变这个查询:

$sql = "INSERT INTO `firmen` (`Firma`, `Ansprechpartner`, `Abteilung`, `Strasse`, `PLZ`, `Ort`, `Telefon`, `Email`, `Website`, `Zusatzinfos`) 
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

进入这个:

$sql = "INSERT INTO firmen ('Firma', 'Ansprechpartner', 'Abteilung', 'Strasse', 'PLZ', 'Ort', 'Telefon', 'Email', 'Website', 'Zusatzinfos') 
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

这个'和`不一样。

于 2013-10-08T10:06:21.357 回答
0

您的错误在以下代码中

$sql = "插入firmen( Firma, Ansprechpartner, Abteilung, Strasse, PLZ, Ort, Telefon, Email, Website, Zusatzinfos)

从每个中删除撇号 ('')

$sql = "INSERT INTO Firmen (Firma, Ansprechpartner, Abteilung, Strasse, PLZ, Ort, Telefon, Email, Website, Zusatzinfos)

于 2014-10-28T12:21:56.503 回答