Violación de integridad en Zend_Db
-
12-09-2019 - |
Pregunta
Tengo el siguiente código:
$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);
Después de corro, me sale el siguiente error:
Uncaught exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[23000]: '
Integrity constraint violation: 1052 Column 'uid' in where clause is ambiguous
He estado tratando de averiguar lo que estoy haciendo mal. Cualquier ayuda?
Solución
El problema es la uid=?
en su cláusula WHERE
. Como una columna uid
es en ambas tablas user_id
y MySQL user_details
no puede determinar qué columna que realmente desea utilizar. Por lo tanto, usted debe hacer
// [...]
->where('user_id.uid=?', $uid)
// [...]
Otros consejos
comprobar la consulta SQL generada en el registro. Tal vez usted tiene que poner la cláusula donde después de la unión.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow