Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 哪里不存在mysql_Php_Mysql - Fatal编程技术网

Php 哪里不存在mysql

Php 哪里不存在mysql,php,mysql,Php,Mysql,当有人访问我的站点时,我想记录用户的ip,但当您到达该站点时,该表可能不存在,因此更新查询给我一个错误。我还需要对照现有的表进行检查。我试过:阅读,但如果表格不存在,似乎没有一个能解决这个问题可能是打字错误。 $db->query("INSERT INTO track (tm, user_agent, host, ip, port, lang) VALUES ('$tm','$user_agent','$host','$ip','$port','$lang') WHERE NOT EXIS

当有人访问我的站点时,我想记录用户的ip,但当您到达该站点时,该表可能不存在,因此更新查询给我一个错误。我还需要对照现有的表进行检查。我试过:阅读,但如果表格不存在,似乎没有一个能解决这个问题可能是打字错误。

$db->query("INSERT INTO track (tm, user_agent, host, ip, port, lang) VALUES ('$tm','$user_agent','$host','$ip','$port','$lang') WHERE NOT EXISTS (
    SELECT ip FROM track WHERE ip='$ip'");

您可能需要查看,它允许您在密钥已存在时指定操作

您可能需要查看,它允许您在密钥已存在时指定操作

我发现您的打字错误

您的(错误)代码具有更好的格式:

$db->query("
    INSERT INTO track (
        tm, 
        user_agent, 
        host, 
        ip, 
        port, 
        lang
    ) 
    VALUES (
        '$tm',
        '$user_agent',
        '$host',
        '$ip',
        '$port',
        '$lang'
    ) 
    WHERE NOT EXISTS 
    (
        SELECT ip FROM track WHERE ip='$ip'
");
修复后:

$db->query("
    INSERT INTO track (
        tm, 
        user_agent, 
        host, 
        ip, 
        port, 
        lang
    ) 
    VALUES (
        '$tm',
        '$user_agent',
        '$host',
        '$ip',
        '$port',
        '$lang'
    ) 
    WHERE NOT EXISTS 
    (
        SELECT ip FROM track WHERE ip='$ip'
    ) -- that was missing
");
无论如何,您可能需要以下内容:

    // check if ip exists
    $query = $db->$query("
        SELECT count(ip) FROM track WHERE ip='$ip'
    ");

    $result = $query->fetchFirstRowSomehow(); // i dont know methods you have in $db object

    $rows = $result['0']; // getting first (only) column that should contain count()

    if ($rows == 0)
    {
        // your insert code here
    }
    else
    {
        // your update code here
    }
我发现了你的打字错误

您的(错误)代码具有更好的格式:

$db->query("
    INSERT INTO track (
        tm, 
        user_agent, 
        host, 
        ip, 
        port, 
        lang
    ) 
    VALUES (
        '$tm',
        '$user_agent',
        '$host',
        '$ip',
        '$port',
        '$lang'
    ) 
    WHERE NOT EXISTS 
    (
        SELECT ip FROM track WHERE ip='$ip'
");
修复后:

$db->query("
    INSERT INTO track (
        tm, 
        user_agent, 
        host, 
        ip, 
        port, 
        lang
    ) 
    VALUES (
        '$tm',
        '$user_agent',
        '$host',
        '$ip',
        '$port',
        '$lang'
    ) 
    WHERE NOT EXISTS 
    (
        SELECT ip FROM track WHERE ip='$ip'
    ) -- that was missing
");
无论如何,您可能需要以下内容:

    // check if ip exists
    $query = $db->$query("
        SELECT count(ip) FROM track WHERE ip='$ip'
    ");

    $result = $query->fetchFirstRowSomehow(); // i dont know methods you have in $db object

    $rows = $result['0']; // getting first (only) column that should contain count()

    if ($rows == 0)
    {
        // your insert code here
    }
    else
    {
        // your update code here
    }

什么是错误消息?使用
die
函数查看错误。我相信您的第二个查询完全错误。|此外,结尾处缺少括号。没有插入到。。。其中语法。错误消息是什么?使用
die
函数查看错误。我相信您的第二个查询完全错误。|此外,结尾处缺少括号。没有插入到。。。其中语法。