2017-01-13 10 views
-2

を準備し、実行するのが正しい方法ですが、私はいつもエコーを得る:は、これは私がデータベースに挿入しようとしていますbind_param

「チケットnietのaangemaakt」

私が使用することはできます「?」間にある変数?

もしそうなら、誰かがいくつかのフォルトを見ることができます。そうでなければ、変数に のスペルミスがあります。

<?php 
//this works fine 
$ophaalKlantQuery = "SELECT * FROM klant WHERE klantNaam='$naam'"; 
    $result = $connectie->query($ophaalKlantQuery); 
    if (mysqli_num_rows($result) == 0) { 
     echo "klant niet gevonden"; 
    } 
    while ($row = $result->fetch_assoc()) { 
     if ($row['klantNaam'] === $naam) { 
      echo $row['klantNaam']; 
      $klantID = $row['klantId']; 
     } 
    } 
// everything below doesnt insert 
$insertticket = $connectie->prepare("INSERT INTO ticket (ticketId, inBehandeling, probleem, trefwoorden, prioriteit, aantalXterug, 
         terugstuurLock, lijnNr, datumAanmaak, nogBellen, log, streefdatum, redenTeLaat, klantTevreden, ftsAccountNr, aangewAccountNr, klantId, subCategorieId, 
         binnenkomstId, vVLaptopTypeId, besturingssysteemId) 
         VALUES ('','$inbehandeling',?,?,?, '$aantalXterug','$terugstuurLock','$lijnNr','$datumAanmaak','$check','$log',?,'$redentelaat','$klanttevreden','$fstAccountNr', 
         '$aangewAccountNr','$klantID',?,?,?,?)"); 
      if ($insertticket) { 
       $insertticket->bind_param('ssisiiii', $probleem, $trefwoorden, $prioriteit, $streefdatum, $scategorie, $binnenkomstT, $merktype, $besturingsysteem); 
       if ($insertticket->execute()) { 
        echo 'ticket aangemaakt'; 
        //header("Refresh:5; url=../index.php", true, 303); 
       } 
      }else {echo 'ticket niet aangemaakt';} 
?> 
+0

申し訳ありませんが、なぜあなたは入れている、明確にしてください値の代わりに? 空白のままにしておきますか?またはその値に変数を入れたいと思っていますか? –

+0

私は? bind_paramで値を –

+0

に変更すると、実際のエラーの内容を表示する必要があります。代わりに、 'else {echo '}}' 'あなたは' echo "エラーを使うべきです:"、。 mysqli_error($ connectie); 'とそれを教えて、PHPのエラー報告を使用します。 –

答えて

-1

異なる構文がありますが、SQLリクエストを行う良い方法は、SQLを変数の受け渡しと区別することです。 SQL要求文字列内の値を直接連結してはいけません。

これに関する文書がありますが、グローバルには文字列の値を自動的かつ安全にbindメソッドに置き換えるものがあります。

構文例: "?"

'INSERT INTO test (name, age) VALUES (?, ?)' 

'INSERT INTO test (name, age) VALUES (:name, :age)' 
+0

名前付きプレースホルダはなぜですか?これらはPDO用であり、使用しているmysqli_ではありません。 –

+0

INSERTにはWHERE句がありません。 – Barmar

+0

あまりにも^しかし、それはまだ名前付きプレースホルダを説明していない –

関連する問題