Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在没有foreach或while的情况下获取mysqli中的assoc?_Php_Mysqli - Fatal编程技术网

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

Php 如何在没有foreach或while的情况下获取mysqli中的assoc?,php,mysqli,Php,Mysqli,在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_i

在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();
 }
?>
当我尝试此操作时,出现了错误

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


我希望设置
$userdata
而不使用
foreach
while
,如果第二个参数未设置或为false,那么在Mysqli中
get\u results
函数是否可能返回关联数组。因此,无需再次调用
fetch\u assoc()


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

$userdataraw
是数组。它没有
fetch_assoc
method如果未将第二个参数设置为true,则
get_results
函数已返回关联数组。无需再次调用
fetch\u assoc()
。@puelo Ok…这样我就可以设置为$userdata=$database->get\u results($query);你能用它吗?我是mysqli的新手…@DrManishJoshi是的。如果只需要一个数据集,而不想使用循环,则需要执行以下操作:
$userdata=$userdataraw[0]
@puelo Ohhh是的…它起作用了…你能把它作为答案,这样我就可以把它标记为已接受的答案。。。
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;   
    }
}