【问题标题】:Want to delete a row from a table using php pdo想要使用 php pdo 从表中删除一行
【发布时间】:2013-09-28 04:28:27
【问题描述】:

我想使用 php pdo 从表中删除一行。我正在使用以下代码,

 $dsn = 'mysql:host=127.0.0.1;dbname=as1';
         $user = 'root';
         $password = '';
    try {
      // Connect and create the PDO object
     $pdo = new PDO($dsn, $user, $password);
     $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    }
    catch(PDOException $e) {
     echo 'Database connection failed - ';
     echo $e->getMessage();
     exit;
     }
    $sql1="DELETE FROM photo WHERE id=?";
        $q1=array($result);
                                try {
        $stmt1 = $pdo->prepare($sql1);
        $stmt1->execute($q1);
        $stmt1->setFetchMode(PDO::FETCH_BOTH);

     $result1= $stmt1->fetchColumn();

    }
    catch (PDOException $e) {
        die("Failed to run query: " . $e->getMessage());
        } 

但是我在一个表中的数据没有被删除...它显示运行查询失败..

【问题讨论】:

  • 你把你的SQL放到$sql1,然后准备$sql
  • 既然你有$result1= $stmt1->fetchColumn();,你应该使用$q1=array($result1);
  • die 语句中的错误信息是什么?

标签: php mysql sql pdo


【解决方案1】:

您没有为? 提供值

$stmt1->execute($q);   // Where is $q defined?

应该是这样的

 $q=array(1);
 $stmt1->execute($q);  

【讨论】:

  • 也许 OP 应该从 $q1=array($result); 开始使用 $stmt1->execute($q1);
  • 它说运行查询失败
  • @Hanky웃Panky 你是说 OP 应该使用 $stmt1->execute($q1); 对吗?
  • 是的,只要 $q1 包含 id 的值
  • @Hanky웃Panky OP 显然与变量不一致。这里没有其他事情可做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-13
  • 2013-01-02
  • 1970-01-01
  • 1970-01-01
  • 2018-10-20
  • 2015-12-24
  • 2011-12-04
相关资源
最近更新 更多