-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

あなたのエラーは以下のコードにあります

$ sql = "INSERT INTO firmen( Firma, Ansprechpartner, Abteilung, Strasse, PLZ, Ort, Telefon)EmailWebsiteZusatzinfos

それぞれからアポストロフィ ('') を削除します。

$sql = "INSERT INTOfirmen (Firma、Ansprechpartner、Abteilung、Strasse、PLZ、Ort、Telefon、Email、Web サイト、Zusatzinfos)

于 2014-10-28T12:21:56.503 に答える
0

余分なパラメーターが 1 つあるため、最初のパラメーターを削除しました。次のように変更します。

$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 に答える