使用PHP将IP插入数据库[duplicate]

6tdlim6h  于 2022-12-10  发布在  PHP
关注(0)|答案(1)|浏览(111)

此问题在此处已有答案

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...."之前就停止了谢谢大家:)

nx7onnlm

nx7onnlm1#

把你的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";
            }
        }
    ?>

相关问题