如何在没有foreach或while的情况下在mysqli中获取assoc


How to fetch assoc in mysqli without foreach or while?

在mysql中,我们使用

$userdata = mysql_fetch_assoc(mysql_query("select * tablename where id=".$_SESSION['user_id']."));

然后我们可以在该页面的任何位置使用$userdata。。。。

在不使用foreach或while语句的情况下,如何使用mysqli

我试过的是

<?
include ("db.php");
session_start();
if(isset($_SESSION['user_id']))
 {
   $userid = $_SESSION['user_id'];
   $query = "SELECT * FROM mytable where id= '$userid'";
   $userdataraw = $database->get_results($query);
   $userdata = $userdataraw ->fetch_assoc();
 }
?>

类别用作:

public function get_results( $query, $object = false )
    {
    self::$counter++;
    //Overwrite the $row var to null
    $row = null;
    $results = $this->link->query( $query );
    if( $this->link->error )
    {
        $this->log_db_errors( $this->link->error, $query );
        return false;
    }
    else
    {
        $row = array();
        while( $r = ( !$object ) ? $results->fetch_assoc() : $results->fetch_object() )
        {
            $row[] = $r;
        }
        return $row;   
    }
}

当我尝试这个时,我得到了错误

致命错误:调用未定义的函数fetch_assoc()

我想在没有foreachwhile的情况下设置$userdata,这在Mysqli中可能吗??

如果第二个参数未设置或为false,则get_results函数已返回关联数组。因此不需要再次调用CCD_ 7。

此外,如果您只期望一个数据集,而不想使用循环,则需要执行以下操作:$userdata = $userdataraw[0]以获得第一个也是唯一的数据集。