【问题标题】:Unable to delete data from oracle database using php无法使用php从oracle数据库中删除数据
【发布时间】:2018-01-10 21:17:59
【问题描述】:

我正在使用 php 从数据库中删除数据,但它没有删除,也没有显示错误。

请帮帮我。

<?php
    include('connect.php');
    $p_No = $_POST['p_No'];
    $sql2 = "DELETE FROM usersR WHERE p_No = '$p_No'";
    $compiled1 = oci_parse($conn,$sql2);
    $ex = oci_execute($compiled1,OCI_DEFAULT);
?>

这是我的 connect.php 代码

 <?php
       $username = "system";
       $password = "******";
       $connectionString = "localhost/ORCL";

       $conn = oci_connect($username, $password, $connectionString);
       if (!$conn) {
          $e = oci_error();
          trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
          }

        ?>

【问题讨论】:

  • 查看if (!$ex) {echo oci_error();}会出现什么错误
  • @NanaPartykar 没有错误发生
  • 也粘贴你的 connect.php 文件。
  • p_No 列是char 还是num?如果是 num,请删除变量 $p_No 周围的单引号 (')。此外,您很容易受到SQL injection 的攻击。
  • @NanaPartykar 完成

标签: php html css database oracle


【解决方案1】:

来自manual

OCI_NO_AUTO_COMMIT:不自动提交更改。在 PHP 之前 5.3.2 (PECL OCI8 1.4) 使用OCI_DEFAULT,相当于OCI_NO_AUTO_COMMIT。

因此,您应该使用OCI_COMMIT_ON_SUCCESS 或进行显式提交。

为了强调每个人所做的 cmets:添加错误检查并使用绑定变量来防止 SQL 注入。

如有疑问,请阅读 PHP OCI8 manualUnderground PHP & Oracle Manual,我一直链接到它们,因为它确实是一个很大的常见问题解答。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 2010-09-17
    • 2021-12-08
    • 1970-01-01
    • 2016-04-02
    相关资源
    最近更新 更多