Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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,我在SQL语法中有错误,但我没有看到它 $query = "IF NOT EXISTS ( SELECT id FROM Provider WHERE name=('$filename') ) INSERT INTO Provider (Name) VALUES ('$filename')"; $query_result = mysqli_query($connect, $query); 代码 INSERT

我在SQL语法中有错误,但我没有看到它

$query        = "IF NOT EXISTS ( SELECT id FROM Provider 
                 WHERE name=('$filename') )
                 INSERT INTO Provider (Name) VALUES ('$filename')";

$query_result = mysqli_query($connect, $query);
代码

INSERT INTO Provider (Name) VALUES ('$filename')
如果我用它,工作正常

还有代码

SELECT id FROM Provider WHERE name=('$filename')
当我测试它的价值时,效果很好

当我添加IF NOT EXISTS时,我有SQL语法错误,但我看不到它! 有什么想法吗?

您不能使用,因为在此上下文中不存在。请尝试以下查询:

插入到提供者名称中 选择文件名 从中选择“$filename”作为文件名t 如果不存在,请选择id 来自提供者 其中name=“$filename”
你有语法错误,因为你根本不能这么做。如果不存在,你会怎么办?我有逻辑错误。我现在明白了,实际上我不需要选择id。我有表提供程序,文件名是提供程序名,我只想检查名称是否已经在表中,如果不在,然后放入记录,如果不在,只是跳过。在我的例子中,我想询问表中是否已经存在文件名。NOT exists运算符的SELECT子句的字段,在本例中id不起任何作用。您可以使用SELECT 1来代替。