gpt4 book ai didi

php - Yii2 ~ SQL JOIN 2 个表

转载 作者:行者123 更新时间:2023-11-29 18:25:54 26 4
gpt4 key购买 nike

我对 YII2 还很陌生,所以我真的不知道它是如何工作的,但我想在factuur_id上加入表,这样我就可以在我的发票(factuur)中显示产品

通常你会这样做:

$connection = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
if (mysqli_connect_errno()){
die("Database Connection Failed: " . mysqli_error() . "(". mysqli_connect_errno() . ")"
);
}

$sql = "SELECT * FROM facturen JOIN producten ON facturen.factuur_id = producten.factuur_id WHERE facturen.factuur_id = 13";

if ($result = mysqli_query($connection, $sql)){

while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
echo $result;

但是在 yii2 中你有类似查询构建器的东西(?)那么它是如何工作的呢?

我想通过 ID 通过正确的发票显示产品 (producten)

my relations

最佳答案

使用数据库并不是一个可以用几句话简单解释的功能。我建议您阅读有关它的指南:http://www.yiiframework.com/doc-2.0/guide-README.html#working-with-databases。但这里有一些快速信息。

简而言之,您应该尝试创建 ActiveRecord 对象。通过在配置中启用“gii”模块并访问 http://[your_host]/gii/model 为表生成事件记录类,可以轻松完成此操作。

然后您可以根据您的请求执行类似的操作。

class Companies extends \yii\db\ActiveRecord {} // auto-generated
class Facturen extends \yii\db\ActiveRecord {} // auto-generated

function tryJoin()
{
$cTableName = Companies::tableName();
$fTableName = Facturen::tableName();

$query = Companies->find();
$query->leftJoin($fTableName, "{$cTableName}.company_id = {$fTableName}.company_id");
$query->where([{$fTableName}.person_id => 123456]);
$companyList = $query->all();
// the result is a list of Company objects
}

或者,如果您不想创建 ActiveRecord 实体,可以使用 DB 命令快速实现。

$sql = "SELECT * 
FROM companies
LEFT JOIN facturen ON companies.company_id = facturen.company_id
WHERE facturen.person_id = 123456;";
$command = Yii::$app->db->createCommand($sql, $params);
$arrayList = $command->queryAll();
// The result is a list of array mapping company table column names.

关于php - Yii2 ~ SQL JOIN 2 个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46200269/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com