2013-11-26 40 views
0

首先,感谢您阅读本文。如何解决我的问题mysqli_result无法转换为字符串

CODE

$roomid = CMS::$MySql->Query("SELECT room_id FROM user_roomvisits WHERE user_id ='".$users['id']."' ORDER BY entry_timestamp DESC LIMIT 1"); 
$room = CMS::$MySql->Query("SELECT caption FROM rooms WHERE id ='".$roomid."'"); 

,并得到了错误:

开捕致命错误:类mysqli_result的对象不能转换为字符串。

这里的mysql类

<?php 
    class MySql{ 
private $Link; 
private $Statement; 
public $Result = null; 
private $FetchRows = Array(); 

public function __construct($Data) 
{ 
    $this->Link = new MySQLi($Data['mysql.hostname'], $Data['mysql.username'], $Data['mysql.password'], $Data['mysql.database']); 
} 

public function Query($Query) 
{ 
    if (isset($this->Statement)) 
    { 
     $this->Statement->Close(); 
     $this->Statement = null; 
    } 

    return $this->Link->query($Query); 
} 



public function Prepare($Query) 
{ 
    if (isset($this->Statement)) 
    { 
     $this->Statement->Close(); 
    } 

    $this->Statement = $this->Link->prepare($Query); 


} 

public function Execute($FuncArgs = null) 
{ 
    if (!is_array($FuncArgs)) 
    { 
     $FuncArgs = func_get_args(); 
    } 

    $Args = Array(''); 

    foreach ($FuncArgs as &$Arg) 
    { 
     $Args[0] .= substr(gettype($Arg), 0, 1); 
     $Args[] =& $Arg; 
    } 

    call_user_func_array(Array($this->Statement, 'bind_param'), $Args); 
    if (!$this->Statement->Execute()) 
    { 
     exit('Execute Stmt Error: '.$this->Statement->error); 
    } 

    return $this->Statement; 
} 

public function Fetch($Columns) 
{ 
    if (!is_array($Columns)) 
    { 
     $Columns = func_get_args(); 
    } 

    if ($this->Result == null) 
    { 
     $this->Result = array_combine($Columns, $Columns); 
     $Args = Array(); 

     foreach ($Columns as $Column) 
     { 
      $Args[] =& $this->Result[$Column]; 
     } 

     call_user_func_array(Array($this->Statement, 'bind_result'), $Args); 
    } 

    $RowsLeft = $this->Statement->fetch(); 

    if (!$RowsLeft) 
    { 
     self::Clear(); 
     return false; 
    } 

    return $this->Result; 
} 

?>

这些都为PDO也许是MySQL的班?

+0

为什么要使用PDO的结构? –

+0

向我们展示更多代码。可能是'$ roomid'或'$ room'声明为字符串。 – MeNa

+0

@ Mr.Alien PDO在哪里? – egig

回答

0
$roomid = CMS::$MySql->Query("SELECT room_id FROM user_roomvisits WHERE user_id ='".$users['id']."' ORDER BY entry_timestamp DESC LIMIT 1"); 
while($row=mysql_fetch_array($roomid)){ 
    $rumid=$row[0]; 
} 
$room = CMS::$MySql->Query("SELECT caption FROM rooms WHERE id ='".$rumid."'"); 

mysql查询的结果是对象。你无法呼应对象

使用var_dump()print_r()查看,如果你不希望使用准备好的语句他们

+0

我得到了这些错误>注意:未定义的偏移量:0在C:\ xampp \ htdocs \ Boost \ Packages \ Default \ Templates \ Home.tpl 119行上 注意:试图获取C:\中的非对象属性xampp \ htdocs \ Boost \ Packages \ Default \ Templates \ Home.tpl on line 119 –

+0

尝试打印print_r($ row).check什么来临 – Bhadra

+0

这些 注意:未定义的偏移量:0在C:\ xampp \ htdocs \ Boost \包\ DEFAULT \模板\ Home.tpl上线121 注意:试图让非对象的属性在C:\ XAMPP \ htdocs中\升压\包\ DEFAULT \模板\ Home.tpl上线121 \t 阵列([room_id] => 37) –

相关问题