【问题标题】:Inserting a code block into Oracle DB using PHP使用 PHP 将代码块插入 Oracle DB
【发布时间】:2017-05-04 14:50:57
【问题描述】:

我正在尝试使用 PHP 在我们的 Oracle DB 中的表中执行插入语句块...

/*$hostInsert looks like this (new lines are made with <br>'s)...
 *
 *BEGIN
 *INSERT INTO TABLE VALUES ('', 'testa', 'testa2');
 *INSERT INTO TABLE VALUES ('', 'testb', 'testb2');
 *INSERT INTO TABLE VALUES ('', 'testc', 'testc2');
 *END;
 *
 */

try{
    $db->execute($hostInsert);
}catch(Exception $e){
    $mes = $e->getMessage();
    echo $mes;
}

不幸的是,上面的代码似乎没有工作,也没有打印任何类型的错误消息......

我的问题,这可能吗?这是因为我在字符串中插入了中断,还是有更好的方法来做到这一点?

任何帮助将不胜感激。

【问题讨论】:

  • 那么你是说你发送到数据库的命令有&lt;br&gt;s 换行吗?如果是这样,是的,这是一个问题。
  • 对,所以它看起来真的像... BEGIN
    *INSERT INTO TABLE VALUES ('', 'testa', 'testa2');
    *INSERT INTO TABLE VALUES ('' , 'testb', 'testb2');
    *INSERT INTO TABLE VALUES ('', 'testc', 'testc2');
    *END;
  • 只是为了确保您的TABLE 是您要插入的表的实际名称,对吗?该表还有多少列?
  • 这有正确的值#并且表名也是正确的。我的问题是,你能以这种格式执行这些插入语句的块吗?没有
  • 你得到什么错误信息?

标签: php sql oracle sql-insert


【解决方案1】:

您不能在 SQL 查询中使用 HTML 换行符语法。这不会被数据库理解。在执行之前,您需要从查询中删除任何 &lt;br&gt;

【讨论】:

  • 好的,我继续删除了
    ,但它仍然不起作用。是否可以通过 PHP 执行插入语句块?我走对路了吗?
【解决方案2】:

大家好,感谢您的帮助,但我自己解决了这个问题。这是我自己的愚蠢错误。我在 2 个表上执行多个插入语句,结果发现存在依赖关系,其中我们无法在一个表中插入一条记录,而在另一个表中没有映射到它的记录。我最终交换了我的执行语句的顺序,它最终工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    • 1970-01-01
    • 2019-05-02
    • 2011-12-21
    • 1970-01-01
    相关资源
    最近更新 更多