Привет, У меня есть хранимая процедура. Также передаю параметры.Параметры хранимой процедуры Mysql Заказ
Поскольку я передаю параметры в другом порядке, что находится в sql, он не работает. Я получаю общую ошибку. Я передаю в аргументах в правильном порядке, в соответствии с линией:
$stored_procedure_to_execute_with_parameters= 'Call '.$stored_procedure->name.'('.$parameter_argument_keys.')';
, который переводит в
Call save_user(':in_user_name', :in_user_password, :in_user_first_name') and so on.
Моя процедура в SQL в списке параметров in_user_password затем in_user_first_name затем in_user_name.
Нужно ли передавать аргументы в правильном порядке в качестве самой хранимой процедуры. Это потому, что я создаю вставки из объекта, который соответствует всем параметрам
$results=array();
if(!is_null($stored_procedure->getParameter()) && count($stored_procedure->getParameter()>0))
{
$parameter_argument_keys= $this->parameterNamesOnly($stored_procedure->getParameter());
$stored_procedure_to_execute_with_parameters= 'Call '.$stored_procedure->name.'('.$parameter_argument_keys.')';
try{
$connection = Yii::app()->db;
$command = $connection->createCommand($stored_procedure_to_execute_with_parameters);
foreach ($stored_procedure->getParameter() as $parameter)
{
$command->bindValue(':'.$parameter->getName(),$parameter->getValue(),$parameter->getType());
}
$dataReader = $command->query();
$dataReader->setFetchMode(PDO::FETCH_ASSOC);
$results = $dataReader->readAll();
}
catch(Exception $e){
Yii::log('', CLogger::LEVEL_ERROR, $e->getMessage());
}
Да, порядок params очень важен и должен быть таким же образом, как определено в SP. – Satya
Вы не можете пройти по заказу, указанному вами при вызове хранимой процедуры, которая должна соответствовать точному порядку процедуры sql. –
MySQL не нравится, когда вы передаете параметры не в порядке. – SparKot