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?

¿Fue útil?

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
scroll top