使用PHP插入MySQL数据库的某些字段

使用PHP插入MySQL数据库的某些字段,php,mysql,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', icebrea

我无法将其正确编译

$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
这份声明有什么遗漏吗

$query = "UPDATE $mysql_database.main SET about = '$about', icebreaker = '$icebreaker' WHERE username = '$username';";
MySQL中的某些对象,包括数据库、表、索引、列、别名、视图、存储过程、分区和其他对象名,称为标识符

标识符引号字符是回勾(“`”)..

如果启用了ANSI\U 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)
MySQL中的某些对象,包括数据库、表、索引、列、别名、视图、存储过程、分区和其他对象名,称为标识符

标识符引号字符是回勾(“`”)..

如果启用了ANSI\U 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)

不要用撇号或引号引用数据库名称

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

使用“而不是”

不要用撇号或引号引用数据库名称

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

使用“而不是”

它们应该转义,但是不能使用撇号,否则名称为
lock
order
的列可能会导致一些问题。但是,它们应该转义,只是不能使用撇号,否则名称为
lock
order
的列可能会导致一些问题