mysql查询因保留关键字而失败?

bq9c1y66  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(354)

编辑:如果你是从谷歌来的,这个问题是这个词的结果 int 在php中是一个保留关键字。请看接受答案的结尾。
我仍在学习php/mysql,我一辈子都不知道我的代码出了什么问题。
我正在尝试从一个html页面获取一些数据,并将其添加到数据库中的一个表中。我正在用一个 GET 请求,然后用php的 $_GET .
我已经对此进行了测试,变量被正确地传递给php脚本,但它们不会出现在数据库中。脚本在这一行消失: mysql_query($query) or die('data entry failed'); ```
$database='a9293297_blog';
$con = mysql_connect('mysql2.000webhost.com','my_username','my_password');
mysql_select_db($database,$con) or die('failed to connect to database');

$username = $_GET['username'];
$password = $_GET['password'];
$charName = $_GET['charName'];
$sex = $_GET['sex'];
$class = $_GET['class'];
$race = $_GET['race'];
$str = $_GET['str'];
$sta = $_GET['sta'];
$dex = $_GET['dex'];
$int = $_GET['int'];
$cha = $_GET['cha'];

$query = "INSERT INTO Players (username, password, charName, sex, class, race, str, sta, dex, int, cha)
VALUES ('" . $username . "', '" . $password . "', '" . $charName . "', '" . $sex . "', '" . $class . "', '" . $race . "', '" . $str . "', '" . $sta ."', '" . $dex . "', '" . $int . "', '". $cha . "')";

mysql_query($query) or die('data entry failed'); // Fails here
mysql_close($con);

djp7away

djp7away1#

要更好地了解sql查询的错误,请使用mysql\u error():

mysql_query($query) or die(mysql_error());

使用mysql\u real\u escape\u string()对字符串变量进行转义。例子:

$query = "INSERT INTO MYTABLE(MYFIELD) VALUES ('".mysql_real_escape_string($myVar)."');

编辑 int 似乎是一个保留的mysql关键字。用反引号转义:

INSERT INTO Players (username, password, ..., str, sta, dex, `int`, cha) ...
rqqzpn5f

rqqzpn5f2#

我不确定,但试试这个
你的代码

$query="INSERT INTO Players (username, password, charName, sex, class, race, str, sta, dex, int, cha)VALUES ('".$username."', '".$password."', '".$charName."', '".$sex."', '".$class."', '".$race."', '".$str."', '".$sta."', '".$dex."', '".$int."', '".$cha."')";

在此代码中

$query="INSERT INTO Players (username, password, charName, sex, class, race, str, sta, dex, int, cha)VALUES ('$username', '$password', '$charName', '$sex', '$class', '$race', '$str', '$sta', '$dex', '$int', '$cha')";

如果你去掉“和”,也许这会有帮助。

相关问题