转换为PDO

时间:2014-03-14 17:52:32

标签: php mysql oop pdo

大家晚上好! 我需要你的帮助。请耐心等待我,因为我对此很陌生。希望你的理解。所以,我在oop和pdo上有一个项目。我很难将其转换为pdo ..这是我的代码..

bookReserve.php

    while($row=mysql_fetch_array($sql))
    {
     $oldstock=$row['quantity'];
    }

    $newstock = $oldstock-$quantity;

这就是我所做的

    while($row = $code->fetchAll())
    {
      $oldstock=$row['quantity'];
    }

    $newstock = $oldstock-$quantity;

这是否正确? 对于oop部分,在此while循环之后,我有一个要执行的查询。

    $sql="update books set no_copies = '$newstock' where book_title = '$book_title'";

以下是我尝试将其转换为pdo

所做的事情
public function bookreserve2($q)
{
  $q = "UPDATE books SET quantity WHERE = $newstock where book_title = '$book_title'"; 
  $stmt = $this->con->prepare($q);
  $stmt->execute(array(':newstock'=>$newstock));
  $result = $stmt->fetch(PDO::FETCH_ASSOC);
  return $result;
}

再次,这甚至是正确的转换查询? 我怎么称$ newstock?

P.S。我的oop类和pdo放在一个单独的文件中。认为这可能会有所帮助。

由于

1 个答案:

答案 0 :(得分:1)

您没有在函数中包含查询参数,并且您的查询存在语法错误(额外的WHERE),并且您不使用占位符直接插入值。

应该看起来像 -

public function bookreserve2($newstock,$book_title)
{
  $q = "UPDATE books SET quantity = :newstock WHERE book_title = :book_title"; 
  $stmt = $this->con->prepare($q);
  $stmt->execute(array(':newstock'=>$newstock,':booktitle'=>$book_title));
  if($stmt){
      return true;
  }
  else {
      return false;
  }
}