2016-03-24 20 views
0

フォーム提出に基づいてレコードを挿入するために使用している単純なクエリがありますが、レコードをデータベースに書き込んでいません。それはまた、エラーを投げていない。私はvar_dumpを使って、変数が正しくポストしていることを確認しました。問題はクエリ構文にあると思いますが、私はそれもチェックしました。PHPからSQLへの挿入が機能しない

ご迷惑をおかけして申し訳ございません。コードは次のとおりです。

if (isset($submit)){ 

$user_id = $_SESSION['user_id']; 
$anthem1 = $_POST['anthem1']; 
$cointoss2 = $_POST['cointoss2']; 

$query = "INSERT INTO mypicks ("; 
$query .= " user_id, anthem1, cointoss2"; 
$query .= ") VALUES ("; 
$query .= " '{$user_id}', '{$anthem1}', '{$cointoss2}'"; 
$query .= ")"; 
$result = mysqli_query($connection, $query); 

} 
+0

後にクリーンアップすることを忘れないでください。 '$ submit'の値をチェックしましたか? ( 'var_dump($ submit);') – fusion3k

+0

もちろん、mysqli_query()の戻り値をチェックしてSQLエラー処理をしないので、エラーはありません。あなたのコードでmysqlサーバに接続してください。 – Shadow

+0

'mysqli_query($ connection、$ query)'の最後に 'or die(mysql_error($ connection))'を追加してエラーメッセージを取得します。 '$ result = mysqli_query($ connection、$ query)またはdie(mysql_error($ connection));' – Sean

答えて

1

コードにいくつかのチェックを追加します。あなたは、データベース接続が起こっていることを確認したいと思う

まず:

$connection = new mysqli('localhost', 'username', 'password', 'database'); 

if($connection->connect_errno > 0){ 
    die('Unable to connect to database [' . $connection->connect_error . ']'); 
} 

次の事、あなたの$submit変数が設定されていることを確認したいと思うので、あなたのコードブロックは、実際に発射されます。

それは、あなたのクエリが動作していることを確認している場合:

$user_id = $_SESSION['user_id']; 
$anthem1 = $_POST['anthem1']; 
$cointoss2 = $_POST['cointoss2']; 

$stmt = $connection->prepare("INSERT INTO mypicks (user_id, anthem1, cointoss2) VALUES (?, ?, ?)"); 
$stmt->bind_param("sss", $user_id, $anthem1, $cointoss2); 
$stmt->execute(); 

if(!$result = $stmt->get_result()){ 
    die('There was an error running the query [' . $connection->error . ']'); 
} 

はまた、クエリの構文が正しい病棟

$stmt->close(); 
$connection->close(); 
+1

あなたはあなたの答えに準備された声明を使っていた可能性があるので、投票はダウンしました。 –

+0

@AlBundy良い点、私はこれを反映するために私の答えを更新しました。 – bmcculley

+0

...逆に... –

関連する問題