0

我的脚本有问题。我收到此错误:致命错误:无法访问空属性

代码是:

public function insertap()

{

    try 
     {
         //echo $_POST['tranzactie'].$_POST['tip'].$_POST['tip_loc'].$_SESSION['uid'];
            $stmt=$this->$dbh->beginTransaction();
            $sql="INSERT INTO `anunturi` (`tranzactie`, `tip`, `tip2`, `user`) VALUES (:tranz, :tip, :tip_loc, :user)" ;
            $stmt->prepare($sql);
            $data = array('tranz' => $_POST['tranzactie'], 'tip' => $_POST['tip'], 'tip_loc'=>$_POST['tip_loc'], 'user'=>$_SESSION['uid']);
            $stmt->execute($data);
            $stmt->commit();
     }
    catch (Exception $e)
    {
            $stmt->rollback();
            echo "A aparut o eroare";
    }

}

提前致谢...

4

2 回答 2

0

改变

$data = array('tranz' => $_POST['tranzactie'], 'tip' => $_POST['tip'], 'tip_loc'=>$_POST['tip_loc'], 'user'=>$ _SESSION['uid']);

$data = array(':tranz' => $_POST['tranzactie'], ':tip' => $_POST['tip'], ':tip_loc'=>$_POST['tip_loc'], ':user '=>$_SESSION['uid']);
于 2013-10-03T08:39:16.287 回答
0
  • 这个 $dbh 没有设置,所以它变成了 $this->null->beginTransaction()。
  • beginTransaction() 返回一个 bool 所以 $stmt 变成 bool 而不是 PDOStatement

-

$stmt=$this->$dbh->beginTransaction();

可能应该是这样的

$this->dbh->beginTransaction();
$sql = ...
$stmt = $this->dbh->prepare($sql);

将 ... 替换为您的插入查询。

  • 您不需要仅针对一个查询的事务。
于 2013-10-03T08:39:17.007 回答