我有以下代码:

$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_iduser_details MySQL不能确定哪些列你真的想用。因此,必须做到

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

其他提示

检查日志中所生成的SQL查询。也许你必须把where子句后加入。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top