调用未定义的方法PDO :: bindParam()

时间:2010-01-13 18:38:06

标签: php

有人能告诉我为什么会收到此错误吗?调用未定义的方法PDO :: bindParam()

这就是我所拥有的,直接从PHPs站点获取存储过程

$stmt = db::getInstance();
$stmt->prepare("CALL delete(?)");
$stmt->bindParam(2122, $return_value, PDO::PARAM_STR, 4000);
$stmt->execute();
print "procedure returned $return_value\n";

3 个答案:

答案 0 :(得分:16)

bindParam()方法位于PDOStatement类内,而不是PDO类。该陈述是prepare()方法的结果

$foo = db::getInstance();
$stmt = $foo->prepare("CALL delete(?)");
$stmt->bindParam(2122, $return_value, PDO::PARAM_STR, 4000);
$stmt->execute();
print "procedure returned $return_value\n";

答案 1 :(得分:4)

bindParam()函数是PDOStatement对象的方法,而不是PDO对象。 $stmt是类PDO的对象。您必须使用PDOStatement来电中的prepare()代替。

$pdo = db::getInstance();
$stmt = $pdo->prepare("your query");
$stmt->bindParam(2122, $return_value, PDO::PARAM_STR, 4000);

答案 2 :(得分:2)

$stmt = db::getInstance(); 
$query = $stmt->prepare("CALL delete(?)"); 
$query->bindParam(2122, $return_value, PDO::PARAM_STR, 4000); 
$query->execute();

您需要调用PDOStatment :: bindParam。 prepare方法返回PDOStatment对象。 The PHP PDO/PDOStatment manuals should help.