【问题标题】:Can't run INSERT statements on ORACLE with PDO无法使用 PDO 在 ORACLE 上运行 INSERT 语句
【发布时间】:2018-05-14 17:27:28
【问题描述】:

我遇到了一个非常奇怪的问题。我有一个安装了 PHP 7.0.22 和 PDO_OCI 扩展的 Linux 服务器。此服务器用于接收 SOAP 请求然后查询 ORACLE 数据库(11g - 不幸的是,我没有日志访问权限)的 API。

我已经在这里运行了一段时间的一些服务,所有的选择和更新语句。我所有的查询都使用准备好的语句、事务和回滚。到目前为止,一切都很好。奇怪的是我无法从 PHP 运行 INSERT 语句。它给了我错误ORA-00933: SQL command not properly ended。起初我以为我没有正确使用准备好的语句,所以我手动编写了 SQL 并尝试从 PHP 运行它,它给了我同样的错误。我尝试从一万亿种不同的方式进行调试,但我似乎无法从那里插入它。我什至转储了生成的 SQL,转到我的 SQL 客户端并运行它,它正确插入了数据(以排除 sql 语法问题)。

任何人都可以在这里解释一下吗?我的查询很简单,比如INSERT INTO table (field1, field2) VALUES (value1, value2);

【问题讨论】:

  • 如果database 不是您的表名,请尝试使用INSERT INTO table_name (field1, field2) VALUES (value1, value2);
  • @urfusion 是的,是一个错字。它是 table_name。
  • 有些输入法不喜欢末尾的分号。尝试删除它,看看是否有任何变化
  • @Kudu2 就是这样,它不喜欢最后的分号。谢谢!

标签: php oracle pdo sql-insert


【解决方案1】:

正如@Kudu2 所回答的那样,我的语句末尾有一个分号,不知何故 PHP 驱动程序不喜欢它。我删除了它,它通过了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-13
    • 2012-06-27
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 2016-07-10
    相关资源
    最近更新 更多