如何使用 CRUD 模型中的构建在 Codeigniter 4 上插入和转义数据
How to use the build in CRUD-Modell for insert and escape the datas on Codeigniter4
我试图了解 Codeigniter4 的新方法和可能性。
我看到 Crud-Model 中构建的一种更短的方法,可以用更少的代码完成最简单的工作。
在使用受保护变量设置 myModel 后,我是否使用此代码在控制器中插入新数据?
$this->myModel->insert(['filed1' => 'value1,
'field2' =>$this->request->getPost('field')...
]));
这样就可以了。
现在我想让它更安全一点,我只想插入转义值。
为此,CodeIgniter 有很多内置的 functions/helpers。所以我尝试以这种方式使用“escape()”
$this->myModel->insert(escape(['filed1' => 'value1,
'field2' =>$this->request->getPost('field')...
])));
但失败并出现错误“调用未定义的函数 App\Controllers\escape()”
那么我如何使用内置基本 Crud 函数支持的 nicest/fastest code/Way 可能只将转义值插入我的数据库?
在这一点上感谢teach/help我!
我用“esc()”找到了第一种方法
$this->myModel->insert(['filed1' => esc('value1'),
'field2' => esc($this->request->getPost('field'))...
]));
也许有更好的方法或者有人有其他建议?
escape
在全局上下文中不起作用,因为该方法是 Database
class 的成员(或者更确切地说,父 class 实现了ConnectionInterface接口)。
esc
是一个全局函数,这就是它在全局上下文中工作的原因。
但是,esc
旨在转义 into web pages 中的数据,而不是数据库。
好消息是,如果您正在使用 Query Builder 方法,那么输入已经为您转义 automatically:
It also allows for safer queries, since the values are escaped
automatically by the system.
如果出于某种原因您仍然需要手动转义输入(例如使用基本查询),可以使用 few options,包括您之前尝试使用的 escape
方法。
我试图了解 Codeigniter4 的新方法和可能性。
我看到 Crud-Model 中构建的一种更短的方法,可以用更少的代码完成最简单的工作。
在使用受保护变量设置 myModel 后,我是否使用此代码在控制器中插入新数据?
$this->myModel->insert(['filed1' => 'value1,
'field2' =>$this->request->getPost('field')...
]));
这样就可以了。
现在我想让它更安全一点,我只想插入转义值。
为此,CodeIgniter 有很多内置的 functions/helpers。所以我尝试以这种方式使用“escape()”
$this->myModel->insert(escape(['filed1' => 'value1,
'field2' =>$this->request->getPost('field')...
])));
但失败并出现错误“调用未定义的函数 App\Controllers\escape()”
那么我如何使用内置基本 Crud 函数支持的 nicest/fastest code/Way 可能只将转义值插入我的数据库?
在这一点上感谢teach/help我!
我用“esc()”找到了第一种方法
$this->myModel->insert(['filed1' => esc('value1'),
'field2' => esc($this->request->getPost('field'))...
]));
也许有更好的方法或者有人有其他建议?
escape
在全局上下文中不起作用,因为该方法是 Database
class 的成员(或者更确切地说,父 class 实现了ConnectionInterface接口)。
esc
是一个全局函数,这就是它在全局上下文中工作的原因。
但是,esc
旨在转义 into web pages 中的数据,而不是数据库。
好消息是,如果您正在使用 Query Builder 方法,那么输入已经为您转义 automatically:
It also allows for safer queries, since the values are escaped automatically by the system.
如果出于某种原因您仍然需要手动转义输入(例如使用基本查询),可以使用 few options,包括您之前尝试使用的 escape
方法。