关系*表名*不存在

迈克尔·P

最近,我收到一条错误消息,我不知道该如何处理。非常模糊。

我使用的PostgreSQL语句是:

    $result = pg_query($ruledbconnection, "INSERT INTO INPUT(num, pkts, bytes ,
    target,prot, opt, \"in\", out, source, destination, id) 
    VALUES('$num','$bytes','$pkts','$target', '$opt', '$protocol', '$in', '$out',
   '$source', '$destination', '$id')");

一切似乎都很好,对吧?但是,当我使用变量执行此查询时:

ERROR: syntax error at or near "'INPUT'" LINE 1: INSERT INTO 'INPUT'(num, pkts, bytes ,
target, prot, opt, "i... ^

我已经坚持了一段时间,这可能是由于PHP的转义,或者其他原因?

我要操作的表在数据库中称为INPUT。

克雷格·林格(Craig Ringer)

您显示的SQL与错误不符。SQL没有在表名两边加引号,而错误却在表名两边。

ERROR: syntax error at or near "'INPUT'" LINE 1: INSERT INTO 'INPUT'(num, pkts, bytes ,

所以。单引号(撇号')用于SQL,而不是标识符标识符用双引号(")引起来。所以你会写:

INSERT INTO "INPUT" (...) VALUES (...)

请注意,引用表名将保留大小写因此,如果您在此处双引号,则必须在引用它的任何地方都将其双引号。如果只使用小写字母,则可以节省理智:

INSERT INTO input (...) VALUES (...)

甚至更好的是一个描述性的表名:

INSERT INTO packets_received (...) VALUES (...)

不过,语法错误是问题中最少的问题。让我向您介绍经典:

SQL注入-XKCD

您的查询遵循以下模式:

pg_query($conn, 'INSERT INTO sometable (col) VALUES ($user_input)')

因此,这是SQL注入漏洞的经典示例

读:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

关系“表名”不存在(PostgreSQL)

来自分类Dev

关系“表名”在PostgreSQL中不存在

来自分类Dev

更新表-关系不存在

来自分类Dev

表不存在表名

来自分类Dev

Postgres报告关系不存在,但表存在

来自分类Dev

Redshift错误:关系“临时表”不存在

来自分类Dev

环回hasandbelongstomany关系表不存在

来自分类Dev

SQLGrammarException:表不存在(ManyTOMany)关系Spring MVC

来自分类Dev

MySQL获取关系表中不存在的行

来自分类Dev

如何加入 SQL 表,包括不存在的关系

来自分类Dev

选择laravel关系表中不存在的记录

来自分类Dev

关系“旧”不存在

来自分类Dev

Django:关系不存在

来自分类Dev

关系不存在 PLPGSQL

来自分类Dev

LARAVEL:关系“表”不存在第1行:从“表”中选择* ^(SQL:从“表”中选择*)

来自分类Dev

表不存在休眠

来自分类Dev

Django的:表不存在

来自分类Dev

SQL表不存在

来自分类Dev

表或视图不存在

来自分类Dev

Laravel - 表不存在

来自分类Dev

Django + posgtres关系不存在错误

来自分类Dev

不存在关系的SQL计数

来自分类Dev

PG :: UndefinedTable:错误:关系不存在

来自分类Dev

Rails db:migrate关系不存在

来自分类Dev

PostgreSQL:错误:关系列不存在

来自分类Dev

Laravel搜索不存在关系的地方

来自分类Dev

Django:Postgresql中不存在关系

来自分类Dev

雄辩的:如果不存在则创建关系

来自分类Dev

PostgreSQL带删除“关系不存在”