新しいユーザーをプログラムに追加するように設計されたページがあります。作成ボタンがクリックされると、POSTを介してPHPスクリプトに情報が送信され、ログインが実行され、パスワードが暗号化され、準備されたステートメントを使用してMySQLにデータが挿入されます。しかし、私は次のエラーが発生し続けている理由がわかりません:MySQL/PHPプリペアドステートメントの挿入エラー
準備ができませんでした:(1064)SQL構文にエラーがあります。ラインで '1
私のスクリプトを近く使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください。
<?php
include("inc.php");
if ((isset($_POST['firstname'])) and (isset($_POST['lastname'])) and (isset($_POST['company'])) and (isset($_POST['statusflag'])) and (isset($_POST['username'])) and (isset($_POST['password'])) and (isset($_POST['passwordConfirm']))) {
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$company = $_POST['company'];
$department = $_POST['department'];
$statusflag = $_POST['statusflag'];
$admin = $_POST['admin'];
$revoked = $_POST['revoked'];
$login = $_POST['username'];
$pass = $_POST['password'];
$passConfirm = $_POST['passwordConfirm'];
} else {
echo "Values did not save. Please try again.";
}
if ($pass == $passConfirm) {
$passEnc = password_hash($pass, PASSWORD_DEFAULT);
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_errno) {
echo "There was a problem connecting to MySQL: (" . $conn->connect_errno . ") " . $conn->connect_error;
}
if (!($sql = $conn->prepare("INSERT INTO sched_users(login, password, firstname, lastname, email, phone, company, department, admin, statusflag, revoked) VALUES (?,?,?,?,?,?,?,?,?,?,?"))) {
echo "Prepare failed: (" . $conn->errno . ") " . $conn->error;
}
if (!$sql->bind_param("sssssssiiss", $login, $passEnc, $firstname, $lastname, $email, $phone, $company, $department, $admin, $statusflag, $revoked)) {
echo "Binding parameters failed: (" . $sql->errno . ") " . $sql->error;
}
if (!$sql->execute()) {
echo "Execute failed: (" . $sql->errno . ") " . $sql->error;
}
$sql->close();
$conn->close();
} else {
echo "Passwords don't match. Please try again.";
}
?>
私の表はを除いて同じ順序で同じ正確な列があります最初の列(id)は自動インクリメントの主キーです。このカラムは、MySQLが自動インクリメントを最後に処理するときに、Insertにインクルードする必要はありません。
すべてのご協力をいただきありがとうございます。
ありがとうございました!
')'間違った場所に/行方不明。 –
@JonStirling Nah彼はちょうどそれを逃しています。彼は括弧で条件をグループ化しています。 – Daerik
@Daerik見つかった点数: –