代码点火器从只有一个组件转义的数组中增加数据库中的值



我需要增加 CodeIgniter 数据库中字段的值。

我知道 CI 允许不转义值,将 $this->db->set(( 中的第三个参数设置为 FALSE。

我正在从数组中插入多个数据,据我了解,转义它们(数据来自表单(并不安全,因为我只需要在一个字段中增加。

如何避免单独插入此值?

我当前的代码:

$dataCliente = array(
'nombre'          => $nombre,
'email'           => $email,
'genero'          => $genero,
'reserva_next'    => $fecha,
'reserva_next_id' => $reserva_id,
'reserva_lastreq' => time(),
'reservas'        => "reservas+1"
);
$this->db->where('telefono', $telefono);
$this->db->update('clientes', $dataCliente);

编辑:我已经用简单和双引号进行了测试,在这两种情况下,字段的值都保存为0(零(

前面的代码不会产生预期的结果。但这有效:

$dataCliente = array(
'nombre'          => $nombre,
'email'           => $email,
'genero'          => $genero,
'reserva_next'    => $fecha,
'reserva_next_id' => $reserva_id,
'reserva_lastreq' => time(),
//'reservas'        => "reservas+1"
);
$this->db->where('telefono', $telefono);
$this->db->update('clientes', $dataCliente);

$this->db->set('reservas', 'reservas+1', FALSE);
$this->db->where('telefono', $telefono);
$this->db->update('clientes', $dataCliente);

我的目的是只使用一个语句来插入数据。 是否可以不使用第一个代码转义数组的单个元素?

谢谢!

简单的答案是否定的。这是一个非常简单的数组。

您可以看到 SET 语句有 3 个参数。您打算如何将其添加到数据数组中。

其他原因可能是...

  1. 它已经被使用 set with false 覆盖了。
  2. 在数组中添加更多字段并必须解析它们以确定哪个字段需要假标志是一种皇家的痛苦。

按照您的方式使用 Set 是完全可以接受的,当您考虑它时......

每次对条目执行更新时,将始终递增"reservas"值。这不是也绝对不应该成为您希望从表单更新的"数据"的一部分。它是更新本身的功能。

所以这种导致...让我们做一个函数。这不是您问题的答案的一部分,但我已将其添加为简单思考的内容。

你可以把它放在你喜欢的地方,但为了简单起见,我假设你有一个客户端控制器,我会把它全部放在那里,在这个例子中......

因此,设置您的$telefono并$dataCliente因为只有您知道它来自哪里......然后创建一个简单的单个函数。

private function update_client_details($data, $telefono) {
$this->db->set('reservas', 'reservas+1', FALSE);
$this->db->where('telefono', $telefono);
$this->db->update('clientes', $data);
}

并调用上述方法执行更新。它变成了一个声明。

如果它在控制器中,最好将其设为私有。在模型中,它必须是公开的。

使用单引号而不是双引号

$dataCliente = array(
'nombre'          => $nombre,
'email'           => $email,
'genero'          => $genero,
'reserva_next'    => $fecha,
'reserva_next_id' => $reserva_id,
'reserva_lastreq' => time(),
'reservas'        => 'reservas+1'
);

有关更多信息,请参阅此链接

相关内容

  • 没有找到相关文章

最新更新