-2

PHPのDBにユーザーを追加するスクリプトに取り組んでいます。何か凝ったものを追加する前に、基本を理解したいと思います。私はPHPを初めて使用することに注意してください。mysql_queryを使用するべきではなく、PDOを使用する必要があることはわかっていますが、フォールバックできるものがあることを確認したいと思います。

私が得ているエラーはこれです:あなたはあなたのSQL構文にエラーがあります。6行目の''の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

私の質問は次のとおりです。

$query = "INSERT INTO users(`username`,`password`,`email`,`regdate`,`isadmin`) VALUES(
`" . mysql_real_escape_string($data['fusername']) . "`,
`" . md5(sha1($data['fpass'])) . "`,
`" . mysql_real_escape_string($data['femail']) ."`,
`NOW()`,
`1`";

(パスワードハッシュをすみません、後でソルトを追加します)

私はそれをそのように実行しています:

$sql = mysql_query($query);

if(!$sql)
{
    die("Account was unsuccessfully created: " . mysql_error());
}

$ sqlをdie()に追加しようとしましたが、空白が返されているようです。

私はバッククォートを削除し、それらを一重引用符に置き換え、users()関数にバッククォートを持たないようにしました-どれも機能しませんでした。

何か案は?

4

2 に答える 2

0

こんな感じになります。それがあなたを助けることを願っています。

$query = "INSERT INTO users(username,password,email,regdate,isadmin) VALUES(
'".mysql_real_escape_string($data['fusername'])."',
'".md5(sha1($data['fpass']))."',
'".mysql_real_escape_string($data['femail'])."',
'NOW()',
'1'";
于 2013-02-07T04:54:01.937 に答える
0

ブロック引用符を値で囲む必要はありません。エラーが発生するたびに、クエリを 2 回または 3 回確認してください。あなたはこれを試すことができます、

$query = "INSERT INTO users(`username`,`password`,`email`,`regdate`,`isadmin`) 
    VALUES('". mysql_real_escape_string($data['fusername']) . "', '" . md5(sha1($data['fpass'])) . "', '" . mysql_real_escape_string($data['femail']) ."', NOW(), '1')";

注: mysql_real_escape_string は非推奨の関数です。 http://php.net/manual/en/function.mysql-real-escape-string.php

于 2013-02-07T04:54:37.340 に答える