【问题标题】:Codeigniter - Call to a member function result() on boolean inCodeigniter - 在布尔值中调用成员函数 result()
【发布时间】:2016-08-10 15:24:56
【问题描述】:

我正在尝试运行此 PHP 脚本以从 Web 服务获取一些数据,它可以正常工作 50~120 次,但随后会引发此异常。 这是我的控制器:

 /* $dataArray = Array(
  *                 "Column1" => "value1",
  *                 "Column2" => "value2",
  *                 and so on...);
  */
    foreach ($dataArray as $row => $value)
    {
// $value[$PrimaryKey]  >>> where condition
// $PrimaryKey          >>> name of the column
// $Table               >>> table name
        if($this->m_myModel->verifyRow($value[$PrimaryKey], $PrimaryKey, $Table))
        {
            $newArray[] = $value;
            unset($dataArray[$row]);
        }// if
    }// foreach

还有我的模特:

function verifyRow($where, $select, $table)
{

    //$this->db->query("SELECT $select FROM $table WHERE $select = $where LIMIT 1");
    $this->db->select($select)
        ->from($table)
        ->where($select, $where)
        ->limit(1);

    $query = $this->db->get();

    if(isset($query->result()[0])) // This is where the error occurs
        return true;
    else
        return false;
}// function verifyRow

我忘了我将配置文件中的 $db['default']['db_debug'] 更改为 FALSE,所以我没有收到任何 DB 错误,然后我打印了 $this->db->_error_message();得到了这个:MySQL 服务器已经消失了

【问题讨论】:

  • 这个问题解决了吗?
  • 解决了没有? Bcoz m 面临同样的问题,但我解决了。

标签: php mysql codeigniter isset


【解决方案1】:

我猜你想得到如果有任何结果对吧?

这也是一个不错的选择:

if($query->num_rows() > 0) 
        return true;
    else
        return false;

【讨论】:

  • 从此你错过了$query->result()。意味着处理/格式化数据
  • @Spartan 没有必要得到这个result() 见这里:codeigniter.com/userguide3/database/…
  • 你没有知识。计数是差异,处理数组是差异
  • 我知道你的意思,如果你以后想得到信息,你必须做result(),但是如果你看到他的代码,他只是在比较是否存在,这与@足够987654326@
  • 但是在教别人时,你必须给 OP 完整的知识。否则 OP 需要为它发布另一个问题
【解决方案2】:

这样试试

$query = $this->db->get();
$result = $query->result(); # added

if(!empty($result))
    return true;
else
{
    return false;
}

$result可以呈现如下

foreach ($result as $value) {
    echo $value['field_name'];
}

$name = $result[0]['field_name'];
echo $name;

【讨论】:

  • 同样的事情,现在的错误在这一行: $result = $query->result(); # 添加
  • 致命错误:在第 1636 行的 /data/www/html/application/models/m_myModel.php 中的布尔值上调用成员函数 result()
  • 尝试使用result_array() 并检查数据是否来自查询
  • 同样的事情兄弟...:/
【解决方案3】:
public function affiche()
     {
       // return $this->db->select('*')->from('produit')->get()->result();
         //   $sql = "SELECT * FROM produit";
        //$result= $this->db->query($sql)->get();
         /*if(!empty($result)){
            return true;   
         }else{
             return false;
         }*/
        $results = array();
        $this->db->select('*');
        $this->db->from('produit');
        $query= $this->db->get();
          if($query == 1) {
               $results = $query->result();
               return  $results;
            }
            else{
                 return false;
            }
     }

【讨论】:

  • 您好,欢迎来到 stackoverflow。你能提供一些关于你的代码的信息吗?只需几行,为什么您认为这会解决问题以及问题代码的问题是什么。
【解决方案4】:
<?php 
                    foreach ($donne as $row){ 
                    ?>

                         <div class="col-sm-3">
                    <center><?=$row->code_type_produit; ?></center><br> 
                        <div class="product-image-wrapper">
                            <div class="single-products">
                                <div class="productinfo text-center">               
                             <a href="<?php /*echo site_url("C_produit/modif?id=$row->")*/ ?>">
                                <img class="imgbox"  src="<?php echo base_url() ?>images/<?php echo $row->img_produit;?>"
                                      width="300px" height="300px" ></a>
                                        <h3><?=$row->code_produit ;?></h3>
                                        <h2><?=$row->prix_produit; echo " CFA";  ?></h2>
                                        <a href="<?php  echo site_url('C_login/authen')?>" class="btn btn-default add-to-cart">
                                                <i class="fa fa-shopping-cart"></i>Voir</a>
                                     <!-- <button class="btn btn-default my-cart-btn" 
                                     data-id="<?=$row->idp ;?>" 
                                     data-name="<?=$row->code_produit ;?>" 
                                     data-price="<?=$row->prix_produit ;?>" 
                                     data-quantity="1"
                                     data-image="<?php echo base_url() ?>images/<?php 
                                     echo $row->img_produit;?>">
                                             Ajouter 
                                    </button> -->
                                    </div>
                                <div class="product-overlay">
                                        <div class="overlay-content">           
                                <img src="<?php echo base_url() ?>images/<?php echo $row->img_produit;?>"
                                          width="150px" height="300px"></a>
                                            <h2><?=$row->Commentaire ;?></h2>
                                            <h2><?=$row->prix_produit; echo " CFA";  ?></h2>
                                            <p><?=$row->code_produit ;?></p>

                                            <a href="<?php  echo site_url('C_login/authen')?>" class="btn btn-default add-to-cart">
                                                <i class="fa fa-shopping-cart"></i>Voir</a>
                                        </div>
                                    </div>
                            </div>

                        </div>

                    </div>
                     <?php } ?>     

【讨论】:

    【解决方案5】:

    可以使用以下设置:

    public function index()
    {
        $result = $this->M_ajout->affiche();
        $data_vue['donne'] = $result;
        $data['vuecharge'] = 'V_produit';
        $data['data_vue'] = $data_vue;
        $this->load->view('template',$data);
    }
    

    【讨论】:

    • 纯代码答案对未来的读者没有帮助。对代码进行文字说明会很有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 2018-06-10
    • 2017-09-25
    • 1970-01-01
    相关资源
    最近更新 更多