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

时间:2016-07-18 17:21:22

标签: php mysqli

在mysql中,我们使用

layoutSubviews

然后我们可以在该页面的任何位置使用$userdata = mysql_fetch_assoc(mysql_query("select * tablename where id=".$_SESSION['user_id'].")); ....

如果不使用foreach或while语句,我们如何使用$userdata来完成?

我试过的是

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()

我希望设置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; } } 而不设置$userdataforeach,是否可以在Mysqli中使用?

1 个答案:

答案 0 :(得分:1)

如果第二个参数未设置或为false,则get_results函数已返回关联数组。因此,无需再次致电fetch_assoc()

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