我的问题非常简单 - 我使用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行(我写的那个)。 怎么可能?