大家晚上好! 我需要你的帮助。请耐心等待我,因为我对此很陌生。希望你的理解。所以,我在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放在一个单独的文件中。认为这可能会有所帮助。
由于
答案 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;
}
}