sql查询和select-before-insert

l3zydbqr  于 2021-06-25  发布在  Mysql
关注(0)|答案(0)|浏览(228)

我目前正在编写下面的sql代码,只有在目前还不存在新数据集的情况下,才应该插入新的数据集。sql代码在phpmyadmin中执行时工作正常。如果我在php中执行代码,就会得到错误(见下文)。
sql代码如下:

INSERT INTO `historiclist` (`id`, `date`, `name`, `idnumber`, `prop1`, `prop2`, `prop3`, `difflimit1`, `difflimit2`)    
        SELECT * FROM (SELECT 
                            0                   as `id`, 
                            1515529465          as `date`, 
                            'johndoe'       as `name`, 
                            '381'           as `idnumber`, 
                            105         as `prop1`, 
                            240             as `prop2`, 
                            60          as `prop3`, 
                            '-10'   as `difflimit1`, 
                            '-10'   as `difflimit2`
                        ) AS tmp 
        WHERE NOT EXISTS (
            SELECT `id` FROM historiclist  
                WHERE   `date`      = 1515529465
                    AND `name`  = 'johndoe'
                    AND `idnumber`      = '381'
        ) LIMIT 1;

我收到的mysql错误是:
无效查询:您的sql语法有错误;检查与您的mariadb服务器版本相对应的手册,以获得使用“insert into”附近的正确语法 historiclist ( id , date , name , idnumber , prop1 ,`prop'在第21行
神秘的情况还有prop2没有完全展示出来。所以它把名字后面的2和e都删掉了。g。建议3。
我错过了什么?
//编辑我也错过了一些东西。。。下面是我的php代码:

$sql1return      = sqlQUERY($connection, $sql1);
$message  = 'Invalid query: ' . mysql_error() . "\n";

function sqlQUERY($connection, $sqlinput){
    $return     = @mysql_query($sqlinput, $connection);
    return $return;
}

数据库连接在任何其他地方都可以正常工作(我知道它有点过时)。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题