当前位置: 首页 > 面试题库 >

使用CodeIgniter的活动记录将NOW()插入数据库

寇开畅
2023-03-14
问题内容

我想在Codeigniter的活动记录中使用mySQL函数NOW()在数据库中插入当前时间。以下查询将不起作用:

$data = array(
        'name' => $name ,
        'email' => $email,
        'time' => NOW()
        );
        $this->db->insert('mytable', $data);

这是因为CodeIgniter的ActiveRecord类自动转义输入。

通过调用set()并传递peratmeter FALSE,以下代码可以正常工作,以使它不会逃脱NOW()。

$data = array(
        'name' => $name ,
        'email' => $email,
        );
        $this->db->set('time', 'NOW()', FALSE);
        $this->db->insert('mytable', $data);

但是,我的问题是,除此之外还有其他方法吗?例如,如果我可以通过只添加数据数组中的所有内容来以某种方式使用?例如,类似:

$data = array(
            'name' => $name ,
            'email' => $email,
            'time' => NOW(), FALSE
            );

问题答案:

除非我犯了个大错,否则答案是:“不,没有办法。”

这种情况下的基本问题是您正在调用MySQL函数,而实际上没有设置值。CI逃脱值,这样你可以做一个干净的插入,但它并没有测试,看看这些值碰巧被调用函数一样aes_encryptmd5或(在这种情况下)now()。虽然在大多数情况下这是很棒的,但在这些情况下,原始sql是唯一的手段。

一方面,date('Y-m-d');应作为NOW()MySQL 的PHP版本使用。(尽管它不适用于所有版本的SQL)。



 类似资料:
  • 我有一个从外部数据库获取数据的功能,我可以获得特定的电影信息,如id、名称、类型等。现在,如果电影类型是例如动画,我只希望将这一种类型添加到db中。现在我可以使用isset来解决这个问题,但接下来我会为tyresnull设置db条目,我想避免这种情况。解决这个问题的最佳方法是什么?使用foreach循环?

  • 问题内容: 有没有办法一次插入多个记录而不是一次插入? 我有一个非常丑陋的耙子任务,正在做以下事情… 这必须非常低效,并且必须有更好的方法… 问题答案: 该方法也将数组作为参数。 但是,它仍然对每个条目执行一个SQL查询,而不是单个SQL查询。它效率更高,因为它只需要在后台创建一个activerecord对象。 如果要同时从同一客户端插入许多行,请使用带有多个VALUES列表的INSERT语句一次

  • 问题内容: 我有以下php-codeigniter脚本,该脚本尝试使用活动记录语法来增加记录的字段: 这将产生以下SQL: 用户的投票编号“ 哪个不会运行,但是此SQL可以满足我的要求: 用户投票id “`<-请注意缺少引号(投票+ 1) 有谁知道如何用codeigniter的活动记录语法实现这种类型的查询? 问题答案: 您可以执行以下操作: 之所以起作用,是因为第三个(可选)FALSE参数告诉C

  • 本文向大家介绍使用PHP CodeIgniter记录插入和显示,包括了使用PHP CodeIgniter记录插入和显示的使用技巧和注意事项,需要的朋友参考一下 让我们以员工管理为例, 步骤1:首先,您必须在数据库中以“ EmployeeManager”的形式创建新模式。在此架构中,创建表名称Employee并在其中添加以下字段。 您在这里准备好餐桌了。 第2步:现在您已经准备好数据库,是时候制作C

  • 问题内容: 我有一个插入查询(活动记录样式),用于将表单字段插入到MySQL表中。我想获取插入操作的最后一个自动递增的ID作为查询的返回值,但是我有一些问题。 控制器内部: 而内部模型: 作为模型中add_post的返回,我一无所获 问题答案: 尝试这个 如果有多次插入,您可以使用

  • 问题内容: 我有一个从表中检索所有标签的函数: 我还有另一个表叫做“工作”。“工作”表的“草稿”列值为1或0。我希望COUNT(tags.id)考虑使用特定标签的工作是否处于草稿模式(1)。 假设有10幅带有“设计”标签的作品。COUNT将为10。但是这些工作中有2个处于草稿模式,因此COUNT应该确实是8。我该如何管理它? 问题答案: 尝试更改: 到: 并添加: