【问题标题】:sql update query didn't execute but return no errror [duplicate]sql更新查询未执行但未返回错误[重复]
【发布时间】:2014-11-13 21:19:03
【问题描述】:
$id = 1; //temp

$promoTitle = trim($_POST['promoTitle']);
$imageURL = trim($_POST['imageURL']);
$affLink = trim($_POST['affLink']);
$couponCode = trim($_POST['couponCode']);

$stmt = $db->prepare('UPDATE dashboard SET promoTitle=?, image=?, url=?, couponCode=? WHERE id=?');

$q = $stmt->bind_param('ssssi', $promoTitle, $imageURL, $affLink, $couponCode, $id);

if($result = $db->query($q)){
    echo "updated";
}else{
    echo mysql_errno();
}

卡了半个小时,还是没查出问题所在。我没有返回错误。我的桌子是这样的http://i.imgur.com/snwloav.png

【问题讨论】:

  • 第三步prepare、bind、execute是$stmt->execute(),不是$db->query()
  • 这应该会爆炸,因为query() 想要一个查询字符串,而不是一个准备好的语句。如果您没有收到错误,您可能需要调整您的 PHP 配置,以便您可以找到/查看它们。
  • 你正在使用 pdo 对象,而不是 query() 使用 execute()
  • 还将您的代码放入 try catch 以获取实际异常。

标签: php mysql sql mysqli


【解决方案1】:

你可以用它在 mysql 中从 php 更新

if(isset($_POST['submit'])){
    try{
        $id = 1; //temp

        $promoTitle = trim($_POST['promoTitle']);
        $imageURL = trim($_POST['imageURL']);
        $affLink = trim($_POST['affLink']);
        $couponCode = trim($_POST['couponCode']);

        $stmt = $db->prepare('UPDATE  dashboard  SET promoTitle = :promoTitle, image = :image, url  = :url, couponCode=:couponCode WHERE id =:id');
        $stmt->execute(array(
          ':promoTitle' => $promoTitle,
          ':image' => $image,
          ':url' => $url,
          ':couponCode' => $couponCode,             
          ':id' =>$id                        
        ));

    //redirect to Your page page
   header('Location: page.php?action=updated');
   exit;
  }

  catch(PDOException $e) {
      echo $e->getMessage();
  }

}

【讨论】:

  • 那是 PDO,但 OP 使用的是 mysqli。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多