Php 当查询为变量时,MySQLi返回0行
我的问题很简单-我使用mysqli将脚本与数据库连接起来,但当我尝试执行SELECT语句时-当我使用变量ex.$abc作为查询字符串时,它返回0行 我使用此函数创建查询:Php 当查询为变量时,MySQLi返回0行,php,database,mysqli,Php,Database,Mysqli,我的问题很简单-我使用mysqli将脚本与数据库连接起来,但当我尝试执行SELECT语句时-当我使用变量ex.$abc作为查询字符串时,它返回0行 我使用此函数创建查询: function get($array) { $select = $array['select']; $from = '`' .$array['from'] . '`'; $fetch = $array['fetch']; $query_text = "SELECT " . $select .
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行。
怎么可能?如果在使用$query\u文本之前回显它,您会看到什么?有什么错误吗?您可以使用mysqli进行检查_error@Jim:从id=1的地方选择*该查询看起来不像来自get函数。get函数将某物封装在`。您确定数据库中有条目吗?获取退出$query\u text;就在$result=mysqli\u query$this->mysqli$query\u text之前;看看它打印了什么这个函数正在工作,它的构建查询从某物中选择*`WHERE id=1`我想问题出在其他地方,再显示一些代码