2011-06-13 98 views
0

我想调用mysql prepare语句并卡在php错误中。在php中调用mysql存储过程

“致命错误:调用一个成员函数准备()在C语言的非对象:\瓦帕\ WWW \学习\ mysqlsp.php第7行”

代码:

include 'connect_db.php'; 

$dbclass=new db_connector(); 
$dbh=$dbclass->getDBH(); 

$stmt=$dbh->prepare("CALL callavg('city','population'"); 
$stmt->execute(); 

$ dbh是一个有效的mysql资源链接。我已经定义了一个DB连接器类,以便$ dbh的作用域问题得到解决,但我仍然无法更正此错误。

请帮忙。

感谢

回答

1

$dbh is a valid mysql resource link

那么它是不是一个PDO对象,你不能调用prepare()方法就可以了!

请使用带有MySQL资源的mysql_query(),或者使用PDOprepare()

+0

@Benjamin Morel :)我的坏。用mysql_query()替换prepare()并不能解决我的问题。你能不能让我知道我们可以使用mysql_query()来运行preparedstaements。例如:mysql_query(“CALL callavg('city','population'”); – user269867 2011-06-13 06:52:09

+1

准备好的语句和存储过程是不一样的[Prepared statements](http://php.net/manual/en/pdo.prepared- (CALL callavg(“city”,“population”)',$ dbh);这个函数可以用来预编译一个查询,然后绑定它的参数。 ' – Benjamin 2011-06-13 06:58:17

+0

让我把它正确的,我有一个存储过程在MySQL [calavg],我试图通过mysql_query()直接从PHP调用,但mysql_query返回false。 – user269867 2011-06-13 07:06:51