PHP / MySQLi Prepared语句在类内执行时返回错误,但在函数内返回数据。 Select语句返回类内的数据而没有prepare语句-我在做什么错了?
class delCost {
public function con()
{
include 'datalogin.php';
return $db;
}
public function getdelCost($cartval)
{
$stmt = $this->con()->prepare("SELECT delday, area, description, rate FROM tbldeliverycost WHERE delday = 'day' AND area = 1 AND ? >= value_from AND ? <= value_to");
$stmt->bind_param('dd', $cartval, $cartval);
$result = $stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
return $row['rate'];
}
function gettestCost($cartval)
{
$sql = ("SELECT delday, area, description, rate FROM tbldeliverycost WHERE delday = 'day' AND area = 1 AND ".$cartval." >= value_from AND ".$cartval." <= value_to");
$rs = $this->con()->query($sql) or die($this->con()->error);
$row = $rs->fetch_assoc();
return $row['rate'];
}
}
// this fails
$cost = new delCost;
$thiscost = $cost->getdelCost(30);
echo $thiscost;
// this works
$cost = new delCost;
$thiscost = $cost->gettestCost(30);
echo $thiscost;
// *****************************************
works inside a function
*******************************************/
function getdel($cartval)
{
include 'inc/datalogin.php';
$stmt = $db->prepare("SELECT delday, area, description, rate FROM tbldeliverycost WHERE delday = 'day' AND area = 1 AND ? >= value_from AND ? <= value_to");
$stmt->bind_param('dd', $cartval, $cartval);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
$delcost = $row['rate'];
return $delcost;
}
$newtest = getdel(30);
echo $newtest;
致命错误:未捕获错误:调用成员函数fetch_assoc() 在布尔值上...堆栈跟踪:#0 delCost-> getdelCost(30)#1 {main}抛出 在第36行上