首页 文章

Codeigniter:在模型中更改SQL查询会导致“无法打开流”警告 . 但是,使用简单的select *查询进行测试

提问于
浏览
0

数据库:托管在远程服务器上的MySQL 5.6版
Codeigniter版本:localhost上的3.0.6
PHP版本:5.5.9

我正在使用模型,尝试构建特定查询并将结果传递给我的控制器 . 这是他们的样子:

模型1(这是有效的):

public function view_offer(){
    $sql = "SELECT Offer.OfferID, Outlet.OutletName, Offer.MaxSurge, Offer.OfferSurge, Offer.OfferStart, Offer.OfferStop, Offer.OfferQuantity, Offer.OfferSold, Offer.OfferStatus
            FROM OfferDetails Offer
            LEFT JOIN RestaurantOutlet Outlet 
            ON Offer.OutletID = Outlet.OutletID";
    //$query = $this->db->query('sql');
    $query = $this->db->get('OfferDetails');
    return $query->result_array();
}

模型2(这不起作用):

public function view_offer(){
    $sql = "SELECT Offer.OfferID, Outlet.OutletName, Offer.MaxSurge, Offer.OfferSurge, Offer.OfferStart, Offer.OfferStop, Offer.OfferQuantity, Offer.OfferSold, Offer.OfferStatus
            FROM OfferDetails Offer
            LEFT JOIN RestaurantOutlet Outlet 
            ON Offer.OutletID = Outlet.OutletID";
    $query = $this->db->query('sql');
    //$query = $this->db->get('OfferDetails');
    return $query->result_array();  
}

控制器(改变模型时不会改变):

public function running_offers(){
    print_r($this->offers->view_offer());
}

两个模型之间的区别在于,一个是简单的“SELECT * FROM OfferDetails;”而另一个涉及表连接和选择的列返回(检查每个代码段中注释掉的行) .

对于模型1,事情进展顺利 . 我能够查询数据库,print_r将数组内容放在屏幕上 .

模型2不起作用 . 我得到的模型2警告非常奇怪:

警告:include(/var/www/html/admin/application/views/errors/html/error_php.php):无法打开流:/ var / www / html / admin / system / core中没有此类文件或目录269行/Exceptions.php警告:include():无法打开'/var/www/html/admin/application/views/errors/html/error_php.php'(include_path =' . :/ usr / share /第269行/var/www/html/admin/system/core/Exceptions.php中的php:/ usr / share / pear')警告:include(/ var / www / html / admin / application / views / errors / html /error_php.php):无法打开流:第269行/var/www/html/admin/system/core/Exceptions.php中没有此类文件或目录警告:include():打开'/ var / www /失败在/ var / www / html / admin / system中包含html / admin / application / views / errors / html / error_php.php'(include_path =' . :/ usr / share / php:/ usr / share / pear')第269行/core/Exceptions.php

我的localhost是一台ubuntu机器 . 为了简化与权限相关的事项,我做了以下事情:

chown -R my-user-id:www-data / var / www / html
chmod -R 777 / var / www / html

谷歌搜索返回的警告消息,我找到更改我的php.ini文件的引用 . 为什么?如何更改无论如何在MySQL中运行的查询需要我更改我的php.ini文件?

1 回答

  • 1

    尝试:

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

    failed to open stream 错误显示,因为没有可用文件,用于显示错误消息( error_php.php ) .

相关问题