Intégrité violation de contrainte Zend_Db
-
12-09-2019 - |
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?
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