使用php向数据库中添加multiselect
我正试图从multiselect中获取一个输入到数据库中。下面是我使用的表单中选择字段的一个片段。我确实找到了[]的建议,所以我加了这个。这是向前迈出的一大步使用php向数据库中添加multiselect,php,mysql,Php,Mysql,我正试图从multiselect中获取一个输入到数据库中。下面是我使用的表单中选择字段的一个片段。我确实找到了[]的建议,所以我加了这个。这是向前迈出的一大步 <select name="project_dicipline[]" data-placeholder="Select uw dicipline(s)" class="chosen-select" multiple style="width:350px;"> <option value=""></o
<select name="project_dicipline[]" data-placeholder="Select uw dicipline(s)" class="chosen-select" multiple style="width:350px;">
<option value=""></option>
<option value="Elektra_LS">Elektra LS</option>
<option value="Elektra_MS">Elektra MS</option>
<option value="Elektra_OV">Elektra OV</option>
</select>
--编辑--
下面是与db的连接。我知道这一部分是有效的,因为表单的其余部分会得到验证并添加到表单中。出于这个原因,我从查询中删除了很多字段。(在运行查询之前,所有变量都已转义)
如果它们是数据库中的单个记录,则需要使用foreach循环插入它
$conn = mysqli_connect($servername, $usernamedb, $passwordDB, $database);
if (!$conn)
{
die("Connection failed: " . mysqli_connect_error());
}
if ($stmt = mysqli_prepare($conn, "INSERT INTO projects (project_status, project_name, project_client, project_diciplines) VALUES('New', ?, ?, ?, ?)")) {
$project_dicipline = array();
foreach ($_POST['project_dicipline'] as $project_dicipline){
$project_dicipline = mysqli_real_escape_string($conn, $project_dicipline);
mysqli_stmt_bind_param($stmt, $project_naam, $project_plaats,$project_client_company,$project_dicipline);
/* execute query */
mysqli_stmt_execute($stmt);
}
}
您可以在php.net和post/loops上阅读有关mysqli的更多信息,并且您有建立到数据库连接的代码吗?我会试试这个,但我不熟悉准备好的语句,所以在复制了这个之后,它似乎不起作用。我是否要替换上一个查询?在if(isset($\u POST['project\u create'])下,我使用一个impode/explode解决方案将其传递给上,然后我创建了一个函数来再次读取它。这似乎奏效了。
$conn = mysqli_connect($servername, $usernamedb, $passwordDB, $database);
if (!$conn)
{
die("Connection failed: " . mysqli_connect_error());
}
$query = "INSERT INTO projects (project_status, project_name, project_client, project_diciplines)
VALUES('New', '$project_naam', '$project_plaats', '$project_client_company', '$project_dicipline')";
mysqli_query($conn, $query);
$conn = mysqli_connect($servername, $usernamedb, $passwordDB, $database);
if (!$conn)
{
die("Connection failed: " . mysqli_connect_error());
}
if ($stmt = mysqli_prepare($conn, "INSERT INTO projects (project_status, project_name, project_client, project_diciplines) VALUES('New', ?, ?, ?, ?)")) {
$project_dicipline = array();
foreach ($_POST['project_dicipline'] as $project_dicipline){
$project_dicipline = mysqli_real_escape_string($conn, $project_dicipline);
mysqli_stmt_bind_param($stmt, $project_naam, $project_plaats,$project_client_company,$project_dicipline);
/* execute query */
mysqli_stmt_execute($stmt);
}
}