0

ねえ、私はPHpを初めて使用し、データベースに詳細を入力しようとしています。ユーザーが入力するイベント名(POST)とログインユーザーのユーザー名を入力しようとしています。

ユーザーのユーザー名を保存するセッションを作成しました。コードは次のとおりです。

$eventname=$_POST['eventname'];
$myusername = $_SESSION['myusername']

$sql = mysql_query("INSERT INTO $tbl_nameVALUES('','$eventname','$_SESSION['myusername'])");

echo "You have been added to the event";

エラーを出しているその$sqlステートメント?どんな助けでも大歓迎です。

皆さんありがとう!

4

5 に答える 5

8

ここにはいくつかの潜在的な問題があります。

eventnameまず、 SQLインジェクションから逃れていません。うまくいけば、それmyusernameはすでに安全だと思います。以前にフィルタリングされていない場合は、でも使用mysql_real_escape_string()$_SESSION['myusername']ます。

$eventname = mysql_real_escape_string($_POST['eventname']);

// Then you need space before VALUES and are missing a closing quote on $_SESSION['myusername'], which should be in {}
$sql = mysql_query("INSERT INTO $tbl_name VALUES('','$eventname','{$_SESSION['myusername']}')");

最後に、ステートメントが機能するために、に正確に3つの列があることを前提としています$tbl_name。使用する列について明示する必要があります。の代わりに正しい列名を使用してcolname1, event_name, usernameください。

$sql = mysql_query("INSERT INTO $tbl_name (colname1, event_name, username) VALUES('','$eventname','{$_SESSION['myusername']}')");

SQL構文エラーの正確な場所は、を介したいくつかの基本的なエラーチェックで明らかになりますmysql_error()

$sql = mysql_query(<your insert statement>);
if (!$sql) {
  echo mysql_error();
}
于 2012-05-01T19:14:04.183 に答える
1

'挿入ステートメントにがありません。これを試して

INSERT INTO $tbl_name VALUES('','$eventname','$_SESSION['myusername']')
于 2012-05-01T19:13:51.093 に答える
1

お役に立てば幸いです...

$eventname=$_POST['eventname'];
$myusername = $_SESSION['myusername'];

$sql = mysql_query("INSERT INTO tbl_name VALUES('','$eventname','".$_SESSION['myusername'])."'");

echo "You have been added to the event";
于 2014-02-04T10:26:14.467 に答える
0

$tbl_nameとの間、VALUESそして実際には'後のスペースが必要です$_SESSION['myusername']

そしてSQLインジェクションを調べてください。

于 2012-05-01T19:13:21.637 に答える
0

$_SESSION配列内のキーを囲む一重引用符を削除します。

$sql = mysql_query("INSERT INTO $tbl_name VALUES('', '$eventname', '$_SESSION[myusername])");
于 2012-05-01T19:15:21.190 に答える