PHP:Sql查询返回true但有0列

时间:2018-05-01 20:25:51

标签: php mysql

所以我在PHP上有一个带有2个sql查询的函数,问题是第二个它没有工作,我不知道为什么。

<?php
     include('../dbFunctions.php');
     function getName($id) {
        $connection = connectDB();

        $sql = mysqli_prepare($connection, "SELECT * FROM lugar_concreto WHERE idLugar = ?");
        mysqli_stmt_bind_param($sql, "s", $id);

        $query = $sql->execute();

        if(!$query)
                die();

        $result = $sql->store_result();

        $realresult = $sql->bind_result($id, $param1, $param2, $param3);

        $sql->fetch();

        if($sql->num_rows() == 0) {
            $sql2 = mysqli_prepare($connection, "SELECT * FROM lugar_transporte WHERE idLugarTte = ?");
            mysqli_stmt_bind_param($sql2, "s", $id);

            $query2 = $sql2->execute();

            if(!$query2)
                    die();

            $result2 = $sql2->store_result();

            $realresult2 = $sql2->bind_result($id, $param1, $param2, $param3);

            $sql2->fetch();

            $rawdata = array();
            $correct = $query2;
            $rawdata['param1'] = utf8_encode($param1);
            if(utf8_encode($param2) != null)
                    $rawdata['param2'] = utf8_encode($param2);
            $rawdata['param3'] = utf8_encode($param3);
            $rawdata['correct'] = $correct;

        } else {

            $rawdata = array();
            $correct = $query;
            $rawdata['param1'] = utf8_encode($param1);
            $rawdata['param2'] = utf8_encode($param2);
            $rawdata['param3'] = utf8_encode($param3);
            $rawdata['correct'] = $correct;
        }

        disconnectDB($connection);
        return $rawdata;

        }
?>

我准备并执行一个查询,如果它返回空结果(0行),那么我执行另一个查询,我知道它现在是清晰有效的方式,但它应该工作我认为。

问题在于,我使用了var_dump()与大号内的变量,如$query$result$realresult,并且所有变回{{1}但是bool(true)变量$sql->fetch();有0个num_rows之后,我不知道为什么。

我使用php 5我不知道是否与此有关。

如果你们中任何人知道更好的方法,请告诉我,任何帮助都会被贬低!

编辑:这就是带有$sql的变种$sql2

var_dump($sql2)

0 个答案:

没有答案