2012-03-01 18 views
0

これを正しくコンパイルすることはできません。PHPを使用してMySQLデータベースの特定のフィールドに挿入する

$username = mysql_real_escape_string($_GET['username']); 
$about = mysql_reaL_escape_string($_GET['about']); 
$icebreaker = mysql_reaL_escape_string($_GET['icebreaker']); 


$query = "UPDATE '$mysql_database'.main SET about = '$about', icebreaker = '$icebreaker' WHERE username = '$username';"; 

私はエラー

You have an error in your SQL syntax; check the manual that corresponds 
to your MySQL server version for the right syntax to use near ''a4396957_users'.main 
SET about = 'testing', icebreaker = 'ice' WHERE us' at line 1 

はこの文では欠けているものがあるのですか?識別子引用文字であるデータベース、テーブル、インデックス、カラム、別名、ビュー、ストアドプロシージャ、パーティション、および他のオブジェクト名を識別子として知られているなどのMySQL内

答えて

3

は、次のような名前で、それ以外の列をアポストロフィでデータベース名を引用またはその代わり

2
$query = "UPDATE $mysql_database.main SET about = '$about', icebreaker = '$icebreaker' WHERE username = '$username';"; 

特定のオブジェクト、..

バッククォート(「`」).. ANSI_QUOTES SQLモードが有効になっている場合

、二重引用符で識別子を引用することも許される:

mysql> CREATE TABLE "test" (col INT); 
ERROR 1064: You have an error in your SQL syntax... 

mysql> SET sql_mode='ANSI_QUOTES'; 
mysql> CREATE TABLE "test" (col INT); 
Query OK, 0 rows affected (0.00 sec) 
+0

彼らはただではないアポストロフィで、しかし、エスケープする必要があります "の

$query = "UPDATE '$mysql_database'.'main' SET 'about' = '$about', 'icebreaker' = '$icebreaker' WHERE 'username' = '$username';"; 

を使用し'引用していません ' 「ロック」または「注文」によっていくつかの問題が発生する可能性があります。 – Moak

+0

OK、nice edit;) – Moak

関連する問題