У меня есть хранимая процедура MySQL, которая принимает три параметра.Частичная подготовка хранимой процедуры
$stmt=$db->prepare("CALL MyStoredProce(?,?,?)");
$stmt->bind_param('iss',$id,$category,$name);
В одном случае изменяются только два параметра. Могу ли я сделать частичную подготовку, как (где средний показатель будет постоянным в этом препарате):
$stmt=$db->prepare("CALL MyStoredProc(?,'CARS',?)");
$stmt->bind_param('is',$id,$name);
Может быть, может быть какой-то выгода для СУБД подготовить заявления с менее ожидаемыми изменениями в параметрах?
ОК, я знаю, что вы сказали о плане объяснения, как правило, работает подготовка запросов в базе данных. Но я думаю, что здесь не несущественно, что в моем заявлении подготовка вызова заключается в хранимой процедуре, потому что я мог бы создать подготовленный оператор для запроса, например, услуги INSERT INTO (id, category, name) VALUES (?, 'CARS' ,?) 'или я ошибаюсь (я должен проверить). – sbrbot
Что я * подразумевал, * в моем комментарии в скобках, это то, что я сказал, в равной мере относится к * любому * запросу. Другими словами, он будет применяться точно так же, как и запрос, состоящий из «INSERT INTO ...», как и для запроса, состоящего из «CALL ...». Это шаг *** клиента ** - стороны *, на котором «оптимизатор запросов» превращает строку SQL ... »любую строку, каждую строку« ... в план действий ». Вы абсолютно правы, что можете «создать подготовленное заявление» для чего угодно. Я полагаю, что то, что я действительно хотел «прояснить (??)», заключается в том, что оно не имело бы никакого влияния на: * хранимую процедуру ». –