PHP MySQL查询插入一致错误

标签 php mysql insert

//--------------------------------------------------------------------------
// php script for adding data from mysql database
//--------------------------------------------------------------------------

$ip = $_GET['ip']; //for debugging sake, will be POST from Ajax
$key = substr(md5(microtime()),rand(0,26),5); //random referral ID - will implement exist analysis
echo $ip; //debugging
$dbhost = 'localhost';
$dbuser = user;
$dbpass = 'pass';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);

if(! $conn ) {
    die('Could not connect: ' . mysql_error());
}

mysql_select_db("database", $conn);
$tbl_name = "refs";
$sql="INSERT INTO $tbl_name(ip, key)VALUES('frfr', 'grgr')";

if (!mysql_query($sql,$con)) {
    die('Error: ' . mysql_error());
}
echo "1 record added";

我不确定这是我的 Digital Ocean 服务器还是什么,但我的 PhpMyAdmin 将接受作为查询的唯一语法是 INSERT INTOrefs(ip,key) VALUES ("insert","432") 带有双引号的值。如果没有出现完全错误或“字段列表”错误中的未知列,我似乎无法在 PHP 中实现此功能。

类似的问题建议从复制粘贴中获取不可打印的垃圾字符,但是我已经在编辑器中重新输入了我的代码。感谢大家的帮助

顺便说一句,我正在创建一个基本的推荐系统,将请求的 IP 存储在带有键或 ID 的“refs”表中。

最佳答案

key 是保留字,因此需要使用 backtique 进行转义。除此之外,您还有间距问题。您的查询应如下所示

INSERT INTO refs(ip,`key`) VALUES ('insert','432')

永远不要使用保留字作为列名或表名。如果有疑问,则转义查询中存在的所有列。

开始引用MySQL Documentation 了解更多信息。这比在 stackoverflow 中将其作为问题发布要容易得多。

关于PHP MySQL查询插入一致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41119154/

相关文章:

php - MySQL 数据库条目重复

php - 使用 Docker 容器部署 Laravel

php - 从 mysql 检索到的 json 字符串上的 json_decode 不起作用

php - 将二进制数据从 PHP 插入 MySQL 时为什么要使用 bin2hex?

php - 来自PHP表单的数据被多次插入mysql数据库

php - 端口 3306 在 mysql 服务器配置中不可用

php - 函数或调用者应该负责输入验证吗?

php - nginx - 无法打开主脚本

php - 基于组合键删除重复行并保留最新行条目 mysql php

php MySQL INSERT 值引用另一个表