2012-01-11 18 views
-3

私は次のクエリの右の構文を取得しようとしてきたが、それは構文エラーが発生し続けPHP構文エラー

コード例Iは、文字列と整数値ではなく、インサートを保存したい

$_SESSION['FN'] = "FirstName"; 
$_SESSION['LN'] = "LastName"; 
$_SESSION['Code'] = 1; 
$strSql = "INSERT INTO BookingInformation (FirstName,LastName,Code) VALUES("'.$_SESSION['FN'].'","'.$_SESSION['LN'].'",'.$_SESSION['Code'].')"; 

声明は、あなたが引用している構文

+0

あなたは '$ _SESSION'変数で何をしているの? – Jakub

+0

あなたはコードがSQLインジェクションに脆弱です。 http://xkcd.com/327/ – piddl0r

+0

@ piddl0rそれは変数の値がどこから来るかによって決まります。 – Gumbo

答えて

0

、試す 正しい形式は次のとおりです。

/* i don't need this!!! 
    $_SESSION['FN'] = "FirstName"; 
    $_SESSION['LN'] = "LastName"; 
    $_SESSION['Code'] = 1; 
*/ 
    $strSql = "INSERT INTO BookingInformation (FirstName) VALUES("'.$_SESSION['FN'].'")"; 

o BookingInformationテーブルのフィールドがFirstName、LastName、Codeの場合、 を挿入できます。

$strSql = "INSERT INTO BookingInformation (FirstName,LastName,Code) VALUES("'.$_SESSION['FN'].'","'.$_SESSION['LN'].'",'.$_SESSION['Code'].')"; 

あなたがnullのいくつかの値を持っている場合、あなたが行うことができます:

$strSql = "INSERT INTO BookingInformation VALUES("'.$_SESSION['FN'].'",'','')"; 
3

を生成し、このような

VALUES("' 
として間違っています

VALUES('" 
0

は、次のように試してみてくださいする必要があります。

$strSql = "INSERT INTO BookingInformation (FirstName, LastName, Code) VALUES('" . $_SESSION['FN'] . "', '" . $_SESSION['LN']. "','" . $_SESSION['Code'] . "')"; 

また、あなたのコードはSQL Injectionにvulnrableです。

+0

セッション変数は、通常、クライアント側のCookie内にセッションキーを持つサーバー側で保持されます。 – Emyr

+0

何かを安全に使用すると仮定しないでください。 – matino

+0

エラー:構文解析エラー:予期しないT_ENCAPSED_AND_WHITESPACE、予期しないT_STRINGまたはT_VARIABLEまたはT_NUM_STRINGの/hermes/web08/b978/pow.habtoorfootballcom/htdocs/alfarooqcentre.com/Bookings/test .php on line 7 – Learning

0

問題がある「「」しようと次のように内部にある」:

$strSql = "INSERT INTO BookingInformation (FirstName) VALUES ('".$_SESSION['FN']."', '".$_SESSION['LN']."', '".$_SESSION['Code']."')"; 

あなたはまた、上記のように、それは必要があります行うことができない1行に3つの値を挿入しようとしています(擬似コード)も:

INSERT INTO table (column1, column2, column3) VALUES ($data1, $data2, $data3); 

またはあなたの場合:

$strSql = "INSERT INTO BookingInformation (FirstName, LastName, Code) VALUES ('".$_SESSION['FN']."', '".$_SESSION['LN']."', '".$_SESSION['Code']."')"; 

最後に、あなたのコードでは、安全でないように見えますセッションが改ざんすることができるよう、より良い準備クエリですべての入力を確保するか、mysql_real_escape_string()

0

文が悪い

$strSql = "INSERT INTO BookingInformation (FirstName, LastName, Code) VALUES('".$_SESSION['FN']."', '".$_SESSION['LN']."', '".$_SESSION['Code']."')";

+0

コードフィールドは整数です "'$ _ SESSION [' Code ']。"'まだクエリを書く必要がありますか? – Learning

+0

です。二重引用符。 – mustafa

+0

非常に重要な点は、入力の検証を行うことです。このコード行は、これらの変数に厄介なものがないことを確信していることを前提としています。 'SQL Injection'は非常に一般的な攻撃方法です。 – mustafa