私はMacでMAMPを実行し、phpMyAdminでデータベースにアクセスしてPHPとSQLを学習しています。私のMySQLデータベースが空の行を追加するのはなぜですか?
新しいユーザーをテーブルに追加するための1つのPHPスクリプトを作成しました。入力したデータをテーブル(ログイン)と比較し、1つはアカウントを閉じるためのものです。私はPHPの基本に慣れているので、すべてのスクリプトは非常に基本的であり、データはまったく消毒されません。
私は、アカウント作成(データの挿入)のスクリプトを実行した後、スクリプトの実行後数秒後に、新しい行がid(これはautoに設定されています)インクリメント)、他のデータはありません。
私がちょうど不足しているのは、この理由がMySQLで明白であるかどうかだけです。
次は、アカウントの作成スクリプトです:
<?php
//Get values from HTML form
$varUsername = $_POST['username'];
$varPassword = $_POST['password'];
$varPasswordHash = password_hash($varPassword, PASSWORD_DEFAULT);
//Establish connection to database
$server = "localhost";
$username = "root";
$password = "root";
$database = "members";
$connection = mysqli_connect($server, $username, $password, $database);
if(!$connection)
{
die("Connection failed: " . mysqli_connect_error());
}
//Send data to database
$action = "INSERT INTO details (USERNAME, PASSWORD) VALUES ('$varUsername', '$varPassword')";
if(mysqli_query($connection, $action))
{
echo 'Account created.';
}
else
{
echo 'Account creation failed: ' . mysqli_error($connection);
}
mysqli_close($connection); //End connection to database
?>
とそれに行くためのHTMLフォーム:
<html>
<body>
<form action="sign_up.php" method="post">
<input type="text" name="username">
<input type="text" name="password">
<input type="submit">
</form>
</body>
</html>
あなたはそのスクリプトを私たちと共有できますか? –
いずれかのテーブルにトリガーがあるか、余分なレコードを挿入しているループロジックがあります。どのようにテリバードを使用していても、コードを共有してください。 – Mihai
デバッグを試しましたか?あなたのHTMLコードも表示してください。最初の行でprint_r($ _ POST)を試して、POSTデータが何であるかを確認してください。私はあなたが希望のPOSTデータを取得していないと思う。 –