未捕获的错误:调用类内的成员函数fetch_assoc()

时间:2019-05-21 12:07:12

标签: php class mysqli prepared-statement

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行上

0 个答案:

没有答案