Внутренняя ошибка сервера Zend Query
Что-то не так с моим запросом Сервер обнаружил внутреннюю ошибку или неверную конфигурацию и не смог выполнить ваш запрос.
Свяжитесь с администратором сервера @@ServerAdmin@@ и сообщите им о времени возникновения ошибки и обо всех действиях, которые вы могли совершить, что могло привести к ошибке.
Дополнительная информация об этой ошибке может быть доступна в журнале ошибок сервера.
$sql = $db->query(
"INSERT INTO users (user_id, title, first_name, last_name, user_identity_id, email_id, password, office_phone_number, public_id, session_id, address_id, created_by, last_modified_by, created_on, last_modified_on, is_activated, is_deprecated, middle_name, cell_phone_number, superviser_name, superviser_email, superviser_phone_number)
VALUES( :p_user_id,:p_title,:p_first_name,:p_last_name,:p_user_identity_id,:p_email_id,:p_password,:p_office_phone_number,:p_public_id,:p_session_id,:p_address_id,:p_created_by,:p_last_modified_by,:p_created_on,:p_last_modified_on,:p_is_activated,:p_is_deprecated,:p_middle_name,:p_cell_phone_number,:p_superviser_name,:p_superviser_email,:p_superviser_phone_number)",
array(
'p_user_id' => '',
'p_title' => $title,
'p_first_name' => $first_name,
'p_last_name' => $last_name,
'p_user_identity_id' => '',
'p_email_id' => $email,
'p_password' => $pass,
'p_office_phone_number' => $office_ph_no,
'p_public_id' => '',
'p_session_id' => '',
'p_address_id' => '',
'p_created_by' => '',
'p_last_modified_by' => '',
'p_created_on' => '',
'p_last_modified_on' => '',
'p_is_activated' => '',
'p_is_deprecated' => '',
'p_middle_name' => $middle_name,
'p_cell_phone_number' => $cell_ph_no,
'p_superviser_name' => $supervisor_name,
'p_superviser_email' => $supervisor_email,
'p_superviser_phone_number' => $supervisor_ph_no
)
);
$db->commit();
1 ответ
Похоже, вы пытаетесь выполнить оператор PDO, используя именованные параметры в Zend.
Первое, что нужно проверить, я полагаю, вы начали транзакцию?
Кроме того, по моему опыту именованные параметры в запросе совпадают с массивом params, например:param1 is $params = array(':param1'=>'data');
Я использую тот же метод, который описан в документации ZF "выполнение оператора с использованием именованных параметров":
$select = 'select col1,col2 from my_table where con1=:param1 and con2=:param2';
$params = array(
':param1'=> 'somedata',
':param2'=> 'someotherdata'
);
$statement = new Zend_Db_Statement_Pdo($db,$sql);
if($statement->execute($params)){
//ok!
}