У меня есть следующий запрос в подготовленном заявлении:Почему я не могу вызвать хранимую функцию MySQL в подготовленном запросе через PHP?
SELECT
cid, cname, cemail, count_client_locations(cid) AS loc_cnt
FROM
clients
WHERE isactive = 1 ORDER BY cname ASC
У меня есть хранимая функция на сервере count_client_locations
. Часть запроса функции выглядит следующим образом:
RETURN (SELECT COUNT(lid) FROM locations WHERE linked_client = cid);
При запуске SQL в MySQL Workbench, он возвращает желаемый результат:
cid | cname | cemail | loc_cnt
------------------------------------------------
2 | Acme Inc | [email protected] | 3
1 | Example Ind | [email protected] | 5
3 | Foobar Inc | [email protected] | 0
1 | Barfoo Ltd | hello[email protected] | 1
Когда я бегу, что с помощью PHP MySQLi подготовленное заявление, его не удается его подготовить (Fatal error: Call to a member function execute() on a non-object
). Если я вывожу вызов функции, он работает нормально.
EDIT код PHP:
$sql = $conn->prepare("SELECT cid, cname, cemail, count_client_locations(cid) AS loc_cnt FROM clients WHERE isactive = 1 ORDER BY cname ASC");
$sql->execute();
Так почему же этот запрос работы в MySQL верстаке, а не в коде PHP, и есть все, что я могу сделать, чтобы исправить это?
@Drew - Я не уверен, следую ли вы тому, что вы имеете в виду. Я понял, что случилось? Запрос? – dan
http://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php/12769983#12769983 ' – Drew
ничего революционного в этом нет – Drew