我想在pdo设置中创建一个mysql函数。
$connection->exec('
DROP FUNCTION IF EXISTS return_id
CREATE FUNCTION return_id(id int(11)) RETURN int(11)
BEGIN
return id;
END');
$fetch=$connection->query('select *,return_id(id) as new_id from category')->fetchall();
print_r($fetch);
我得到一个错误:
FATAL ERROR: UNCAUGHT ERROR: CALL TO A MEMBER FUNCTION FETCHALL() ON BOOLEAN
1条答案
按热度按时间fslejnso1#
这里有一些问题。首先,您没有检查您的产品的退货状态
$connection->exec
调用将为false,因为您有语法错误,缺少;
在第一行的末尾,即但是,pdo::exec不会执行多个语句,因此需要将函数定义放在单独的
exec
不管怎样。下一步:
RETURN
应该是RETURNS
最后,您没有检查调用的结果$connection->query
也在回归false
(没有成员函数fetchall的布尔值),因为它由于前面的错误而失败。为了让它工作,你需要把你的代码改成这个。但是,作为最佳实践,您还应该检查调用的结果
$connection->exec
以及$connection->query
.