Нарушение ограничения целостности в Zend_db
-
12-09-2019 - |
Вопрос
У меня есть следующий код:
$selectColumns= array('user_id.user_email',
'user_details.first_name',
'user_details.last_name',
'user_details.zip',
'user_details.store_id');
$result = $handle->select()->from('user_id')
->where('uid=?', $uid)
->columns($selectColumns)
->join('user_details', 'user_id.uid = user_details.uid')
->query(ZEND_DB::FETCH_OBJ);
После запуска я получаю следующую ошибку:
Uncaught exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[23000]: '
Integrity constraint violation: 1052 Column 'uid' in where clause is ambiguous
Я пытался понять, что я делаю не так.Какая-нибудь помощь?
Решение
Проблема заключается в том, что uid=?
в вашем WHERE
оговорка.В качестве uid
столбец есть в обеих таблицах user_id
и user_details
MySQL не может определить, какой столбец вы действительно хотите использовать.Поэтому вы должны сделать
// [...]
->where('user_id.uid=?', $uid)
// [...]
Другие советы
проверьте сгенерированный sql-запрос в журнале.Возможно, вам нужно поместить предложение where после join .
Не связан с StackOverflow