我最近了解了 SQL 注入以及避免它的 PHP 建议,使用prepare()和bind_param()。现在,我想动态地准备 SQL 查询,添加列名和值。
我以前是这样做name的,HTML 输入的字段与 MySQL 数据库列的名称相同。
<input type="text" name="firstname" >
<input type="text" name="lastname" >
Run Code Online (Sandbox Code Playgroud)
并且,使用 mysqli 动态创建 SQL 查询。
// Extract values from POST
$parameters = $_POST;
// Organize the values in two strings
foreach ($parameters as $id => $value) {
$fields = $fields . "`" . $id . "`,";
$values = $values . "'" . $value . "',";
/*e.g.
$fields = `firstname`,`lastname`
$values = 'John','Wick'
*/
}
// …Run Code Online (Sandbox Code Playgroud) 我想在创建新用户时使用 EasyAdmin 3.x 的验证组来验证每个字段。
\n我有一个包含name、phone和email字段的 User 实体,并在“创建”组中使用 @UniqueEntity ,因此我可以在 EasyAdmin 外部创建的表单中更新用户。这工作得很好,但当我使用新的组时,我无法找到如何告诉 EasyAdmin 使用默认组和我的创建组我的创建组。
\n这是带有我所具有的约束的简化用户实体
\nuse Doctrine\\ORM\\Mapping as ORM;\nuse Symfony\\Bridge\\Doctrine\\Validator\\Constraints\\UniqueEntity;\nuse Symfony\\Component\\Validator\\Constraints as Assert;\n\n/**\n * @ORM\\Entity(repositoryClass=LeadRepository::class)\n * @ORM\\HasLifecycleCallbacks()\n * @UniqueEntity(\n * fields="cellphone",\n * message="Ya existe un usuario con este n\xc3\xbamero telef\xc3\xb3nico",\n * groups={"creation"}\n * )\n * @UniqueEntity(\n * fields="email",\n * message="Ya existe un usuario con este email",\n * groups={"creation"}\n * )\n */\nclass Lead\n{\n /**\n * @ORM\\Id()\n * @ORM\\GeneratedValue()\n * @ORM\\Column(type="integer")\n …Run Code Online (Sandbox Code Playgroud)