繁体   English   中英

PHP mysqli_stmt_bind_result与mysqli联合

[英]PHP mysqli_stmt_bind_result with mysqli union

因此,我试图创建一个UNION query ,以便可以从两个表(相同的数据库)中获取数据,稍后再尝试使用mysqli_bind_result()拉取该数据,但出现错误:

mysqli_stmt_bind_result():绑定变量数与数字不匹配

这是我的代码:

$sql = mysqli_stmt_init($con);
if(mysqli_stmt_prepare($sql, "(SELECT `naslov`, `id_lang` FROM `naslovi` WHERE `id_vijesti` = ?) UNION ALL (SELECT `text`, `id_lang` FROM `tekstovi` WHERE `id_vijesti` = ?)")) {
    mysqli_stmt_bind_param($sql, "ii", $id, $id);
    mysqli_stmt_execute($sql);
    mysqli_stmt_bind_result($sql, $naslov, $id_lang1, $text, $id_lang2);    
    $vijest = array();

    while(mysqli_stmt_fetch($sql)) {
        echo $naslov;
        if($id_lang1 == $id_lang2) {
            $vijest[] = array($naslov, $text, $id_lang1);
        }

    }

    mysqli_stmt_close($sql);

该错误表明变量数量不匹配。 UNION查询合并内部查询中的所有列。

我认为您正在这里寻找JOIN查询。 看一下此页面: http : //www.sitepoint.com/understanding-sql-joins-mysql-database/

编辑:添加了一个示例

"SELECT 
    `naslovi`.`naslov`, `naslovi`.`id_lang`, `tekstovi`.`text`, `tekstovi`.`id_lang` AS tekstovi_id_lang 
    FROM `naslovi` JOIN `tekstovi` 
    ON `naslovi`.`id_vijesti` = `tekstovi`.`id_vijesti` 
    WHERE `naslovi`.`id_vijesti` = ?"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM