さて、これらの 2 つの関数は、何らかの理由で正しく動作することを拒否し、その理由がわかりません。アクティブなデータベースの外で使用すると問題なく動作します (私はテスト済みで、現在テスト中です)。たとえば、価格が 4 から 20 ドルに上がる必要がある場合、価格はゼロになり、次に更新されると行の次の数値になります。
private function updatePrice($iid, $price, $purchased)
{
if($price >= 0)
{
$price = abs($price);
}
else
{
$price = $this->getItemStats($iid);
$price = abs($price['base']);
}
$sql = "UPDATE store SET item_price = :price, available = available-:purchased WHERE iid = :iid";
$que = $this->db->prepare($sql);
$que->bindParam('price', $price);
$que->bindParam('iid', $iid);
$que->bindParam('purchased', $purchased);
try{$que->execute(); if($que) { return true; } else { echo "FUCK"; exit; } }catch(PDOException $e){echo $e->getMessage(); exit;}
}
function getSupplyDemand($purchased, $iid)
{
$sql = "SELECT available, number, item_base_price, iid FROM store WHERE iid = :iid";
$que = $this->db->prepare($sql);
$que->bindParam('iid', $iid);
try{ $que->execute();
if($que)
{
while($row = $que->fetch())
{
$Quantity =$row[0];
$Supply = $row[1];
$price = $row[2];
$iid = $row[3];
$price = abs(($price * $purchased)*($Quantity - $Supply)/.25);
if($this->updatePrice($iid, $price, $purchased))
{
return true;
}
else
{
echo "Somethign went wrong";
exit;
}
}
}
}catch(PDOException $e){}
}