在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;
}
}
而不设置$userdata
或foreach
,是否可以在Mysqli中使用?
答案 0 :(得分:1)
如果第二个参数未设置或为false,则get_results
函数已返回关联数组。因此,无需再次致电fetch_assoc()
。
此外,如果您只想要一个数据集并且不想使用循环,则需要执行以下操作:$userdata = $userdataraw[0]
以获取第一个且唯一的数据集。