//--------------------------------------------------------------------------
// 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 INTO
refs(
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/