Php 如何从类中的函数返回mysqli结果对象?
所以。。我通过编写带有CRUD操作的数据库对象来练习PHP。。但是,从数据库对象返回结果对象时遇到问题 这是位于db类内部的相关“select_where”函数,它使用一个参数指定表名:Php 如何从类中的函数返回mysqli结果对象?,php,mysql,oop,mysqli,crud,Php,Mysql,Oop,Mysqli,Crud,所以。。我通过编写带有CRUD操作的数据库对象来练习PHP。。但是,从数据库对象返回结果对象时遇到问题 这是位于db类内部的相关“select_where”函数,它使用一个参数指定表名: function select_where(array $values, $table, $what = "*") { $where_stmt = ''; if(count($values)>0) { $fie
function select_where(array $values, $table, $what = "*")
{
$where_stmt = '';
if(count($values)>0)
{
$fields = array_keys($values);
$vals = array_values($values);
if ($what != "*")
{
if(is_array($what)===TRUE)
{
$what = implode($what, ',');
}
else //assume string! -- needs better error handling!
{
//Don;t do anything for now
}
}
$where_stmt = "WHERE ";
for( $i=0 ; $i<count($fields) ; $i++)
{
$where_stmt .= "$field[$i] = '$vals[$i]' AND ";
}
$where_stmt .= "$field[$i] = '$vals[$i]'";
}//else: array is an empty one, meaning SELECT ALL;
$query = "SELECT $what FROM `$table` $where_stmt;";
;
if($result = $this->mysqli_conn->query($query))
{
echo "RESULT:<br />";
print_r($result);
return $result;
}else{
return false;
}
}
打印\u r不打印任何内容
我100%确信这与我不了解PHP OOP的工作原理有关;当我在别处寻找答案时,任何建议或解决方案都将受到高度赞赏
看来我找到了答案: 新手失误 在我的代码中,我使用了helper函数 $result=$db->select_all('code') 实际上是这样的:
function select_all($table, $what="*" )
{
$empty_array = array();
$this->select_where($empty_array, $table, $what);
}
但正如大家所看到的,这个函数没有返回!所以现在:
function select_all($table, $what="*" )
{
$empty_array = array();
return $this->select_where($empty_array, $table, $what);
}
这就是解决办法
再次感谢您尝试返回$result->fetchAll();如果
var\u dump($result),会发生什么代码>?您应该希望看到一个mysqli结果object@AndreiAndrei我试过了,但还是没回来!您应该编辑您的问题以添加问题的完整代码function@Asenar .. 我已经包括了全部代码,但是已经找到了答案。。谢谢(由于我是新来的,8小时内无法回答这个问题,所以我对它进行了编辑)
function select_all($table, $what="*" )
{
$empty_array = array();
return $this->select_where($empty_array, $table, $what);
}