dpc46827 2015-12-26 13:40
浏览 6
已采纳

PHP类使用mysqli

I need something like this.

 $mysqli = new mysqli($bd_host, $bd_user, $bd_password); 

 class webFile {

 function __construct($querystr){

 if ($result = $this->$mysqli->query($querystr)) { 

 while( $row = $result->fetch_assoc() ){ echo $row['name']; } 

 $result->close(); 

 }}}

 $object = new webFile($querystr);

I try in different variants, but somethink do not work. I interested in mysqli->query not mysqli_query(a,b);

UPD 1. Your solutions not work. 2. Thanks, work fine, the problem was with DB also.

  • 写回答

2条回答 默认 最新

  • dqwr32867 2015-12-26 13:47
    关注

    You need to use global for PHP to look in the global scope and see your $mysqli variable, and because this is a global variable you can't use $this:

    $mysqli = new mysqli($bd_host, $bd_user, $bd_password); 
    
    class webFile {
    
    function __construct($querystr){
    global $mysqli;
    if ($result = $mysqli->query($querystr)) { 
    
    while( $row = $result->fetch_assoc() ){ echo $row['name']; } 
    
    $result->close(); 
    
    }}}
    
    $object = new webFile($querystr);
    

    You could also just pass your MySQLi object to your constructor and have a property:

    $mysqli = new mysqli($bd_host, $bd_user, $bd_password); 
    
    class webFile {
    
    function __construct($querystr, $conn){
    $this->mysqli = $conn;
    if ($result = $this->mysqli->query($querystr)) { 
    
    while( $row = $result->fetch_assoc() ){ echo $row['name']; } 
    
    $result->close(); 
    
    }}
    private $mysqli;
    }
    
    $object = new webFile($querystr, $mysqli);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?