php - MySQL 查询因保留关键字而失败?

标签 php mysql database

编辑:如果您是从 Google 过来的,这个问题是因为单词 int 是 PHP 中的保留关键字。请参阅已接受的结尾回答。

我仍在学习 PHP/MySQL,我终其一生都无法弄清楚我的代码有什么问题。

我正在尝试从 html 页面中获取一些数据并将其添加到我的数据库中的表中。我使用 GET 请求传递数据,然后使用 PHP 的 $_GET 检索它。

我已经对此进行了测试,变量已正确传递给 PHP 脚本,但它们并未出现在数据库中。该脚本死于这一行: mysql_query($query) or die('数据输入失败');

$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);

最佳答案

要更好地了解您的 SQL 查询有什么问题,请使用 mysql_error() :

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

mysql_real_escape_string() 转义你的字符串变量。示例:

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

编辑

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

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

关于php - MySQL 查询因保留关键字而失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5525226/

相关文章:

php - Cakephp 1.3\persistent\不可写....\models\不可写

php - 如何从 "threads"表上相关线程的行中检索自动递增编号?

mysql - 如果您尝试更新正在查询的表,MySQL 会做什么?

python - 在 Mac OS X Lion 上设置 MySQLdb 以支持 Django 时遇到问题

mysql - 在 WHERE 中加入 MAX

c# - Entity Framework 不插入记录

php - MVC架构中,密码加密应该在哪里进行

php - 是否可以在 magento 中显示关联产品的属性?

mysql - SQL 嵌套查询处理

database - 为个人项目设计数据库