【问题标题】:PHP Delete products / IDPHP 删除产品/ID
【发布时间】:2016-01-16 19:37:23
【问题描述】:

所以我有这个:

    echo "
        <form action='users/delete.php' method='post'>
          <input type='hidden' name='ProductID' value='".$row->ProductID."' />
          <input type='submit' value='Delete' />
        </form>
    ";

这在网上商店的每件商品下都有:

这行得通,但每当我按下按钮时,表并没有被删除,这是我的 delete.php

<?php

define('_HOST_NAME_', 'localhost');
define('_USER_NAME_', 'root');
define('_DB_PASSWORD', '#####');
define('_DATABASE_NAME_', 'ws_webshop');

//PDO Database Connection
try {
 $databaseConnection = new PDO('mysql:host='._HOST_NAME_.';dbname='._DATABASE_NAME_, _USER_NAME_, _DB_PASSWORD);
 $databaseConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
 echo 'ERROR: ' . $e->getMessage();
}


    // create PDO instance; assign it to $db variable
    $sql = "DELETE FROM `tbl_products` WHERE `ProductID` = :ProductID LIMIT 1";
    $smt = $databaseConnection->prepare($sql);
    $smt->bindParam(':ProductID', $_POST['ProductID'], PDO::PARAM_INT);
    $smt->execute();

header('Location: ../webshop.php');

但它并没有删除它,有人看到问题了吗? 谢谢!

【问题讨论】:

  • 尝试从查询中取出限制 1。
  • 如果将查询放在try 中会发生什么? $row-&gt;ProductID 是否也已填充,也许那是一个数组?
  • 将错误报告添加到文件顶部,紧跟在您的打开 PHP 标记之后,例如 &lt;?php error_reporting(E_ALL); ini_set('display_errors', 1);,然后是其余代码,看看它是否会产生任何结果。
  • 注意:试图在 F:\xampp\htdocs\new\3n\webshop.php 第 120 行第 120 行获取非对象的属性
  • 已修复,将值更改为:value='".$row['ProductID'] 谢谢大家

标签: php button


【解决方案1】:

您的$row 使用的是一个对象,但您有一个数组。因此,要么将您的 fetch 更改为:

->fetch(PDO::FETCH_OBJ);

-http://php.net/manual/en/pdostatement.fetch.php

或将您的用法更改为:

echo "
        <form action='users/delete.php' method='post'>
          <input type='hidden' name='ProductID' value='".$row['ProductID'] . "' />
          <input type='submit' value='Delete' />
        </form>
    ";

【讨论】:

    【解决方案2】:

    排队

    $sql = "DELETE FROM 'tbl_products' WHERE 'ProductID' = :ProductID LIMIT 1";

    尝试更改为:

    $sql = "DELETE FROM 'tbl_products' WHERE 'ProductID' = ProductID LIMIT 1";

    没有“:”接近ProductID LIMIT 1。 在 MySQL 控制台中尝试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-22
      • 1970-01-01
      • 2019-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多