Question

Je le code suivant:

$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);

Après je cours, je reçois l'erreur suivante:

Uncaught exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[23000]: '
Integrity constraint violation: 1052 Column 'uid' in where clause is ambiguous

J'ai essayé de comprendre ce que je fais mal. Toute aide?

Était-ce utile?

La solution

Le problème est le uid=? dans votre clause WHERE. En tant que colonne de uid est dans les deux tables user_id et MySQL user_details ne peut pas déterminer quelle colonne que vous voulez vraiment utiliser. Vous devez donc faire

// [...]
->where('user_id.uid=?', $uid)
// [...]

Autres conseils

vérifier la requête SQL généré dans le journal. Peut-être que vous devez mettre la clause où, après la jointure.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top