当查询是变量时,MySQLi返回0行

时间:2014-06-20 08:46:11

标签: php database mysqli

我的问题非常简单 - 我使用mysqli将我的脚本与数据库连接,但是当我尝试执行SELECT语句时 - 当我使用变量(例如$。abc)作为查询字符串时,它返回0行...

我使用此函数创建查询:

function get($array) {
    $select = $array['select'];
    $from = '`' .$array['from'] . '`';
    $fetch = $array['fetch'];

    $query_text = "SELECT " . $select . " FROM " . $from;
    if(array_key_exists('where', $array)) {
        $where = $array['where'];
        $query_text .= " WHERE " . $where;
    }

    if(array_key_exists('order', $array)) {
        $order = $array['order'];
        if(!empty($order)){
            $query_text .= " ORDER " . $order;
        }
    }


    $result = mysqli_query($this->mysqli, $query_text);
    echo $result->num_rows;
}

我通过这样做来使用它:

$id = 1; // just for the example.
$query = get(array('select' => '*', 'from' => 'something', 'where' => 'id = ' . $id . '', 'fetch' => false);

当我这样做时($ query = get(...))然后显示0(因为它没有找到任何行),如果我在get()函数中这样做:

function get($array) {
    [...]
    $result = mysqli_query($this->mysqli, "SELECT * FROM something WHERE id = 1"); // It's the same query.
}

然后它显示1 - 因为它找到了1行!

这两个查询是相同的,但返回0(来自变量的那个)和1行(我写的那个)。 怎么可能?

0 个答案:

没有答案