0

テスト フォームからデータベースに行を挿入しましたが、uniqid() を使用しても機能しません。フォームは正常に機能し、データを挿入しますが、一意の行を取り込むと挿入されません。

私はもともとMySQLデータベースの「一意の」行をVARCHAR(500)に設定していましたが、それが問題かどうかわからなかったので、TEXT(500)に変更しました。$unique をエコーアウトしたので問題にはならないはずで、それは単なる数字と文字ですが、サーバー側のスクリプトがそれを特定のものとして解釈するかどうかはわかりませんでした. また、デバッグするために他に何をすべきかわかりませんでした! uniqid() 値をデータベースに挿入するときに何か特別なことをする必要があるかどうかを検索しましたが、他の値と変わらないようです。何か不足していますか?ご協力いただきありがとうございます!

$test1 = $mysqli->real_escape_string($_POST['test1']);
$test2 = $mysqli->real_escape_string($_POST['test2']);
$test3 = $mysqli->real_escape_string($_POST['test3']);
$test4 = $mysqli->real_escape_string($_POST['test4']);
$unique = uniqid();

//ECHO OUT UNIQUE ID TO MAKE SURE IT WORKED
echo "<script>alert('".$unique."');</script>";

$sql_insert = "INSERT INTO users (test1, test2, test3, test4, unique) VALUES ('$test1', '$test2', '$test3', '$test4', '$unique')";
$result_insert = $mysqli->query($sql_insert);

//ECHO OUT UNIQUE ID AGAIN TO MAKE SURE IT REMAINS THE SAME (AND IT DOES)
echo "<script>alert('".$unique."');</script>";

//IF EVERYTHING WORKS, FORWARD TO SECOND FORM PAGE
if($result_insert){
    header('Location:second_form.php');
}
//IF THERE IS AN ERROR INSERTING THE DATA, GIVE AN ERROR MESSAGE
else{
    echo "<script>alert('There was an error submitted your info. Please try again.');</script>";
}

編集

$mysqli-error をエコーし​​、これが私が得たものです:

SQL 構文にエラーがあります。使用する正しい構文については、MySQL サーバー バージョンに対応するマニュアルを確認してください。

コードのその領域にエラーが表示されませんか?

4

1 に答える 1

2

UNIQUEMySQL の予約語です。バックティックを使用する必要があり、それで問題が解決するはずです。

于 2013-06-16T08:06:56.373 に答える