使用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
的列可能会导致一些问题