标签: codeigniter

MySQL 插入查询缺少非空字段

我目前正在尝试使用 CodeIgniter 的对象关系映射器,但我遇到了一些我没有预料到的事情。

我有一个包含几个字段的表,其中一些字段不为空。生成缺少 NOT NULL 字段的插入查询 - 添加一个新行,但这些字段为空白。

我不知道 MySQL 会忽略查询中不存在的 NOT NULL 字段并无论如何插入该行。有没有办法限制这个?

-编辑-

让我添加更多细节并尝试对其进行更多解释

这是一个示例表:

CREATE TABLE `test` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `color` varchar(40) COLLATE utf8_bin DEFAULT '',
 `shape` varchar(40) COLLATE utf8_bin NOT NULL,
 `size` varchar(40) COLLATE utf8_bin NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_bin
Run Code Online (Sandbox Code Playgroud)

这是一个示例查询:

INSERT INTO `test` (`shape`) VALUES ('foo')
Run Code Online (Sandbox Code Playgroud)

我的查询中没有size,但它仍然添加该行 - 这是预期的吗?

(示例查询在 phpMyAdmin 中运行)

mysql sql codeigniter insert

0
推荐指数
1
解决办法
4317
查看次数

Codeigniter Select_Sum 返回“数组”而不是数值?

我需要将所有行相加以获得结果。使用 select_sum 如下

这是模型

    function Dues_Paid_Tot($date)
{
    $query = $this->db->select_sum('Dues_Paid', 'Dues_Paid_Tot');
    $query = $this->db->get('Membership');
    return $query->result();
}
Run Code Online (Sandbox Code Playgroud)

这是控制器

    function Fiscal2()
{
$date = $this->input->post('Select_Date');
    if($query = $this->report_model->fiscal_list($date))
    {
        $data['records'] = $query;
    }
$data['date'] = $this->input->post('Select_Date');
$data['Dues_Paid_Tot'] = $this->report_model->Dues_Paid_Tot($date);
$data['main_content'] = 'report_fiscal_view';
$this->load->view('includes/template', $data);
}
Run Code Online (Sandbox Code Playgroud)

这是视图的相关代码

<?php echo $Dues_Paid_Tot; ?>
Run Code Online (Sandbox Code Playgroud)

问题是,我在视图中看到的是“Array”,而不是显示 Dues_Paid 列中所有条目的总和。

我哪里出错了?

谢谢!

php mysql arrays select codeigniter

0
推荐指数
1
解决办法
2万
查看次数

将 php 变量从控制器传递到视图头部的 javascript 函数

我会将两个 php 变量从 codeigniter 控制器传递到位于视图头部的 javascript 函数。有可能做这样的事情吗?

javascript php codeigniter

0
推荐指数
1
解决办法
4736
查看次数

Codeigniter 模型 foreach 将数组传递给控制器​​ -&gt; 查看

这是我的模型 - 我想分配行并在视图页面上回显,例如<?php echo $product?>

class Model_products extends CI_Model {

    function printer()
    {

    $id = $this->uri->segment(3, 0);

        $q = $this->db->get_where('printer', array('id' => $id));

        if ($q->num_rows == 1)
        { 
            foreach ($q->result() as $row)
            {

                echo $row->name; # THIS WORKS
                $data['product'] = $row->name;  # THIS DOES NOT WORK
                $data['desc'] = $row->description;
                $data['size'] = $row->size;
                $data['options'] = $row->options;
                $data['more'] = $row->more_info;
            }
        }


    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的控制器

public function products()
{

    $this->load->model('Model_products');

    $this->Model_products->printer();

    $this->load->view('products', $data);

    $this->load->view('pricing');
}
Run Code Online (Sandbox Code Playgroud)

我的看法是

<h1>
<?php echo $product; ?> …
Run Code Online (Sandbox Code Playgroud)

php codeigniter

0
推荐指数
1
解决办法
2万
查看次数

使用 mpdf 和 codeigniter 生成空白输出

我一直在写这篇文章来生成pdf,但输出是空白的,并且没有显示错误,我已经输入了:

public function generate_pdf()
{
    $this->load->library('mpdf');
    $mpdf=new mPDF('utf-8','A4');
    $mpdf->WriteHTML('<p>HTML content goes here...</p>');
    $mpdf->Output();
}
Run Code Online (Sandbox Code Playgroud)

当我把:

public function generate_pdf()
{
    $this->load->library('mpdf');
    $mpdf=new mPDF('utf-8','A4');
    $mpdf->debug = true;
    $mpdf->WriteHTML('<p>HTML content goes here...</p>');
    $mpdf->Output();
}
Run Code Online (Sandbox Code Playgroud)

参考这个答案,我收到此错误:

Output has already been sent from the script - PDF file generation aborted.
Run Code Online (Sandbox Code Playgroud)

pdf-generation codeigniter mpdf

0
推荐指数
1
解决办法
7248
查看次数

本地主机当前无法在 Codeigniter3 中处理此请求 HTTP ERROR 500

我将 MAMP 用于 MAC,并且我在本地有一个项目。它运作良好。我决定更新这个项目并在 localhost 显示 500 错误后从我的 Web 服务器下载。

在此处输入图片说明

但是,当我输入另一个本地主机项目时,它可以工作。我使用 Codeigniter3 框架。问题出在哪里?

php mamp codeigniter localhost

0
推荐指数
1
解决办法
1万
查看次数

REST_CONTROLLER cors 不工作(Codeigniter)

我需要一些帮助,因为这个问题困扰了我好几天,我不知道如何进一步处理。我正在使用 VueJs2 和 Codeigniter(Rest 控制器)作为我的 API 开发我的应用程序。我正在使用节点 web-pack 服务器(npm run dev),所以我的首页应用程序在http://localhost:8080 上运行。此应用程序正在向我的 Codeigniter 应用程序发出请求(我使用的是 nginx 虚拟主机,因此我可以在http://myapp.test上访问我的 api )

问题如下。我的 VueJs 应用程序正在从http://localhost:8080发出 GET 请求,并带有一些自定义标头

this.$http.get(this.$apiUrl + `rest/api/public/User/user/` + payload.id_user, {
    // if i remove this custom header, everything works ok!
    headers: {
        jwttoken: token
    }
})
Run Code Online (Sandbox Code Playgroud)

这是我关于 CORS 的 rest.php 配置

$config['check_cors'] = FALSE;
$config['allowed_cors_headers'] = [
    'Origin',
    'X-Requested-With',
    'Content-Type',
    'Accept',
    'Jwt-token',
    'jwttoken'
];
$config['allow_any_cors_domain'] = TRUE;
$config['allowed_cors_origins'] = [
    'http://localhost:8080',
];
Run Code Online (Sandbox Code Playgroud)

这是我的控制器,让用户

class User …
Run Code Online (Sandbox Code Playgroud)

php rest codeigniter nginx node.js

0
推荐指数
1
解决办法
4184
查看次数

Codeigniter 致命错误:session_start():无法初始化存储模块:path\to\Session\Session.php 中的用户(路径:C:\to\tmp)

当我要安装我的新 codeigniter 项目时。我得到了错误

致命错误:session_start(): 无法初始化存储模块:用户(路径:C:\xampp\tmp)在 C:\xampp\htdocs\Tetavendor\system\libraries\Session\Session.php on line 140

我在 stackoverflow PHP 7 用户会话问题中发现了类似的
问题 - Failed to initialize storage module

但是没有一个解决方案对我有用。我的 codeigniter 版本是 3.0.0。那么如何解决这个问题呢?

php codeigniter

0
推荐指数
1
解决办法
2万
查看次数

在 CodeIgniter 4.0.2 中设置动态基 URL

我正在将我的项目从 CodeIgniter 3 迁移到 CodeIgniter 4。我对框架的新结构感到困惑。所以这是我的问题,

我在App.php 中将我的基本网址设置为:

protected $proj_root= "http://".$_SERVER['HTTP_HOST'];
protected $proj_root2  = str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
protected $mybase= $proj_root.$proj_root2;
public $baseURL =  $mybase;
Run Code Online (Sandbox Code Playgroud)

但我收到这样的错误:

致命错误:常量表达式在第 26 行的 D:\xampp\htdocs\delivery_dashboard\app\Config\App.php 中包含无效操作

所以从字面上看,我只能这样做:

public $baseURL = "http://localhost/my_project/"
Run Code Online (Sandbox Code Playgroud)

如何使用动态设置我的基本 url$_SERVER['HTTP_HOST']或者这里有任何解决方法?

谢谢您的帮助!

codeigniter base-url php-7 codeigniter-4

0
推荐指数
1
解决办法
6819
查看次数

如何自动加载 codeigniter4 库一次并在控制器、模型、视图中的每个位置访问它,就像在 CI3 中一样

在 CI3 中,我们制作自定义库并在 config/autoload.php 中自动加载它,然后我们可以在控制器、模型、视图中的任何地方使用它,通过简单的 $this->rules->status() 其中 Rules 是应用程序/库中的库文件夹

但是无法在 CI 4 中做同样的事情,是否有其他可用的替代方法

codeigniter codeigniter-3 codeigniter-4

0
推荐指数
1
解决办法
2375
查看次数