需要有关PREPARE sql函数PDO的帮助

时间:2014-07-14 03:22:59

标签: php mysql

我在使用PREPARE语句运行mysql时遇到问题。我一直收到这个错误:

  

致命错误:在第16行的C:\ xampp \ htdocs \ test \ classes \ class.ManageSales.php中的非对象上调用成员函数PREPARE()

这是我的class.ManageSales.php

class addSales {

    public $sales;
    public $created_on;
    public $created_by;


    public function setSales(array $item) { 

        $conn = new dbconnection();
        $dbh = $conn->connect();

        $this->sales = $item['sales'];
        $this->created_on = $item['created_on'];
        $this->created_by = $item['created_by'];

        $query = $dbh->PREPARE("INSERT INTO tbltransaction(transTypeId,amount,created_on,created_by) VALUES(?,?,?,?)");
        $values = array(1,$this->sales,$this->created_on,$this->created_by);            
        $run_query = execute($values);

        $counts = $run_query->rowCount();           
        return $counts;
    }

}

我的index.php是:

require_once 'classes/class.Database.php';
require_once 'classes/class.ManageSales.php';

$theSales = new addSales();

$setSales = $theSales->setSales(array(
    'sales' => 1100, 
    'created_on' => '2014-07-14', 
    'created_by' => 'Janus Ian'     
    ));

任何人都可以告诉我我的代码有什么问题吗?

好的,我已经更新了我的setSales()函数,但是我收到了新的错误:致命错误:在第20行的C:\ xampp \ htdocs \ test \ classes \ class.ManageSales.php中调用未定义的函数execute()第20行的class.ManageSales.php

2 个答案:

答案 0 :(得分:3)

您的数据库处理程序$dbh未定义。 prepare也应该是小写的(但这不是你现在得到的错误)

/编辑该代码有多个问题。您所询问的即时错误就是我上面所描述的,但一旦完成,您将会看到更多问题。 execute定义在哪里?你是说statement->execute?如果是这样,请定义。你还要覆盖$query(我想你可能希望第一个成为$statement,但这只是猜测。)

答案 1 :(得分:0)

您在prepare()上致电$dbh。但是代码中未定义$dbh。我会在$dbh函数中设置setsales()参数。然后将$dbconnect传递给函数。这样你实际上是在DB上调用prepare()