如何使用Cakephp连接两个不同的数据库表?

时间:2010-08-02 05:36:53

标签: php cakephp

将以下查询转换为cakephpquery。

"SELECT * FROM user1.user_favourites,esl.esl_lyrics
WHERE
    esl_lyrics.id=user_favourites.fav_recordID
    AND user_favourites.fav_userID=".$user_id."
    AND user_favourites.fav_widgetID=$wid_id";

模型文件是esl.php和userFavourite.php DB是user1和esl。 数据库表是user1中的user_favourites和esl DB中的esl_lyrics。

plz提供详细信息。在esl.php和userFavourite.php中做了哪些更改

请帮帮我......

1 个答案:

答案 0 :(得分:0)

在为您正在使用的各种ID提供数据映射之前,很难确定要写入的内容。由于您不符合SQL中的标准,因此各个表中的字段都被命名为不同。但到目前为止我理解的是:

esl_lyrics.id = user_favorites.fav_recordID

根据您的描述,有两种型号。因此,您需要确保两者之间存在关系。这将要求您确定它是belongsTo,hasOne,hasMany等。 您似乎也在使用多个数据库(模式),因此您需要配置database.php以便可以访问每个数据库。

配置完所有内容后,您应该能够以下列方式访问数据:

$this->Model1->Model2->find('all', array('conditions' => array('Model1.id' => 'Model2.id', 'Model2.user_id' => $user_id, 'Model2.widgetID' => $wid_id)));

它将返回一个包含两个模型数据的数组。但是,除非您可以分享您的模型的外观以及ID等的映射,否则这将是您将获得的答案。