此问题在此处已有答案:
When to use single quotes, double quotes, and backticks in MySQL(13个答案)
12小时前关门了。
此帖子在12小时前编辑并提交审查。
我想插入当前的time()
和$_SERVER['REMOTE_ADDR'];
到我的数据库我想使简单的代码算法,保存我的IP和当前时间到数据库中,如果该IP不存在于数据库中。
我有这样的代码,它应该做到这一点,但相反,我得到了一个错误。
<?php
require_once("../core/core.php");
$user_time = time();
$ip = $_SERVER['REMOTE_ADDR'];
$sql = "SELECT * FROM userinfo WHERE ip = $ip";
$result = $conn->query($sql);
if(!$result) {
trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $conn->error, E_USER_ERROR); <-- line 10
echo "Database connection failed.";
} else {
if($result->num_rows == 0){
trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $conn->error, E_USER_ERROR);
$sql = "INSERT INTO userinfo (ip, time) VALUES ('$ip', '$user_time')";
$conn->query($sql);
echo "IP ADDRESS SAVED successfully";
} else if($result->num_rows >= 1) {
$sql = "UPDATE userinfo SET time = '$user_time' WHERE `ip` = '$ip'";
$conn->query($sql);
echo "IP ADDRESS UPDATED successfully";
}
}
?>
以下是我访问该页面时得到的完整错误
致命错误:错误的SQL:SELECT * FROM用户信息WHERE ip =我的真实的IP错误:SQL语法中有错误;请查看与您的MariaDB服务器版本对应的手册,以了解在/home/appunloc/domain/folder/index. php第10行中第1行“.103.25”附近使用的正确语法
出于安全考虑,我用单词my_real_ip
隐藏了我的真实的IP:)
编辑但不复制
问题解决了,感谢@brombeer和@aynbey。问题是trigger_error
函数停止了脚本进一步执行,这意味着它在第二个查询触发"INSERT INTO...."
之前就停止了谢谢大家:)
1条答案
按热度按时间nx7onnlm1#
把你的IP地址放在撇号(')中。检查下面。