2017-12-23 10 views
-5

私はデータベースへの入力データについて質問したいと思います。常に結果 "Gagalのdaftar" を示しデータベースへの入力に失敗しました

<?php 
    include "koneksi.php"; 
    if(isset($_POST['daftar'])){ 
    $daftar = mysqli_query($conn, "INSERT INTO tb_daftar VALUES 
    ('".$_POST['id']."', 
     '".$_POST['nama']."', 
     '".$_POST['asal_sekolah']."', 
     '".$_POST['jenis_kelamin']."', 
     '".$_POST['nama_ayah']."', 
     '".$_POST['nama_ibu']."', 
     '".$_POST['alamat']."', 
     '".$_POST['no_hp']."', 
     '')"); 
     if($daftar){ 
     $pesan1 = "Berhasil daftar"; 
     echo "<script type='text/javascript'>alert('$pesan1');</script>"; 
     }else{ 
     $pesan2 = "Gagal daftar"; 
     echo "<script type='text/javascript'>alert('$pesan2');</script>"; 
     } 
    } 
?> 

.. どのようにそれを修正するには?ありがとう! mysqli_error

else{ 
    $pesan2 = mysqli_error($conn); 
    echo "<script type='text/javascript'>alert('Error: '+$pesan2);</script>"; 
    } 
+1

は'最後のコンマを削除 ' "[no_hp ']。$ _ POST。'"':ここではmysqliのを学ぶためにいくつかのリンクあり--- –

+1

@SimoneNigroいいえ、彼はできません。 $ _ POST ['no_hp']。 "'、 ' ') –

+0

@AmitGupta彼は正しいです。 OPが準備された声明を使用したかどうかを確認する方がはるかに簡単です。 – Barmar

答えて

0

を使用してMySQLクエリから

+0

「sssssss」とは何ですか? –

+0

パラメータタイプのリスト。 's' =文字列、' i' =整数。あなたはドキュメントを読もうとしましたか? – Barmar

-2

エラーを表示あなたは最後の値の後に余分なコンマを持っています。また、SQLインジェクションを防ぐために、準備されたステートメントを使用する必要があります。

if ($dafter = mysqli_prepare($conn, "INSERT INTO tb_dafter VALUES (?, ?, ?, ?, ?, ?, ?, ?)")) { 
    mysqli_stmt_bind_param($dafter, "ssssssss", $_POST['id'], $_POST['nama'], $_POST['asal_sekolah'], $_POST['jenis_kelamin'], $_POST['nama_ayah'], $_POST['nama_ibu'], $_POST['alamat'], $_POST['no_hp']); 
    mysqli_stmt_execute($dafter); 
    $pesan1 = "Berhasil daftar"; 
    echo "<script type='text/javascript'>alert('$pesan1');</script>"; 
} else { 
    $pesan2 = htmlentities(mysqli_error($conn)); 
    echo "<script type='text/javascript'>alert('$pesan2');</script>"; 
} 
+1

データベースに挿入されていないデータの原因を調べる必要があるため解決策があります – JoshKisb

+0

最初のステップであっても問題を解決する方法をデバッグステップが回答します – JoshKisb

+0

エラーが表示されず、ページが更新されましたここで私のフォームコード:https://pastebin.com/jNsnmVFq –

-1

あなたのコードが良好な状態ではありませんが、あなたは多くの側面で考える必要があるように、idよう

  1. 整数値は引用符になりません。
  2. 列名にテーブル名が指定されていない場合は、、リスクが高いは列名なし。
  3. あなたのクエリは、SQL Injection
  4. 注入するのは簡単ですあなたは、あなたのリスク使用mysqliのやPDO

    をカバーするために、issetで、Check my other answer about this

を$ _POST変数の値をチェックしていないが、私は挿入することが示唆しますmysqliまたはpdoを使用します。 、 `<

mysqli_prepare

mysqli_stmt_bind_param

Prepared Statements in MySQLi

+0

この種の回答が歓迎されているcodereview.stackexchange.comへの移行を検討してください。しかし、スタックオーバーフローでは、ポストされたコードの一般的な話題はオフトピック –

-2
$daftar = mysqli_query($conn, "INSERT INTO tb_daftar((database columns)) 
    VALUES 
('".$_POST['id']."', 
    '".$_POST['nama']."', 
    '".$_POST['asal_sekolah']."', 
    '".$_POST['jenis_kelamin']."', 
    '".$_POST['nama_ayah']."', 
    '".$_POST['nama_ibu']."', 
    '".$_POST['alamat']."', 
    '".$_POST['no_hp']."', 
    '')"); 
+0

データベースを保存するときにコロン情報がありません。 (データベース列)は、データコロンの順に入力する必要があります。 – kadir

関連する問題