PDO 多个 select 问题
PDO multiple select issue
我在我的数据库中插入一个表单多个 select 值,但它只插入最后一个 selected 值。我该如何解决这里是我的代码。有人能告诉我代码有什么问题以及为什么它只插入最后一个值。谢谢
PHP:
$stmt = $conn->prepare("INSERT INTO portfolio (title, descrption,categories,skill, images) VALUES (:title, :editor1,:Category,:skill,:fileToUpload)");
$stmt->bindParam(':title', $title);
$stmt->bindParam(':editor1', $dec);
$stmt->bindParam(':skill',$value);
$stmt->bindParam(':Category',$cat);
$stmt->bindParam(':fileToUpload',$pic);
$title = $_POST['title'];
$dec = $_POST['editor1'];
$skill=$_POST['skill'];
foreach ($skill as $value)
{
echo $value;
}
$cat= $_POST['Category'];
$pic=($_FILES['fileToUpload']['name']);
$stmt->execute();
echo "Portfolio records created successfully";
}
}
HTML:
<div class="form-group">
<label>Skills</label>
<select id="ms" name="skill[]" multiple="multiple">
<option>Html5</option>
<option>Css3</option>
<option>Illustrator</option>
<option>Photoshop</option>
<option>Coral Draw</option>
<option>Jquery</option>
<option>Javascript</option>
<option>Wordpress</option>
<option>Magento</option>
<option>Android</option>
<option>Woocommerce</option>
<option>PHP</option>
</select>
</div>
您不能直接将 array 像 $_POST['skill']
插入到数据库字段中,但是您可以例如将数组中的值连接到一个字符串中,然后将该字符串插入到数据库字段中。
所以你可以尝试这样的事情:
$skills = join(',', $_POST['skill']);
$stmt->bindParam(':skill', $skills);
当然还有一些其他的方法(比如将不同的值插入数据库table的不同rows/datasets)。
我在我的数据库中插入一个表单多个 select 值,但它只插入最后一个 selected 值。我该如何解决这里是我的代码。有人能告诉我代码有什么问题以及为什么它只插入最后一个值。谢谢
PHP:
$stmt = $conn->prepare("INSERT INTO portfolio (title, descrption,categories,skill, images) VALUES (:title, :editor1,:Category,:skill,:fileToUpload)");
$stmt->bindParam(':title', $title);
$stmt->bindParam(':editor1', $dec);
$stmt->bindParam(':skill',$value);
$stmt->bindParam(':Category',$cat);
$stmt->bindParam(':fileToUpload',$pic);
$title = $_POST['title'];
$dec = $_POST['editor1'];
$skill=$_POST['skill'];
foreach ($skill as $value)
{
echo $value;
}
$cat= $_POST['Category'];
$pic=($_FILES['fileToUpload']['name']);
$stmt->execute();
echo "Portfolio records created successfully";
}
}
HTML:
<div class="form-group">
<label>Skills</label>
<select id="ms" name="skill[]" multiple="multiple">
<option>Html5</option>
<option>Css3</option>
<option>Illustrator</option>
<option>Photoshop</option>
<option>Coral Draw</option>
<option>Jquery</option>
<option>Javascript</option>
<option>Wordpress</option>
<option>Magento</option>
<option>Android</option>
<option>Woocommerce</option>
<option>PHP</option>
</select>
</div>
您不能直接将 array 像 $_POST['skill']
插入到数据库字段中,但是您可以例如将数组中的值连接到一个字符串中,然后将该字符串插入到数据库字段中。
所以你可以尝试这样的事情:
$skills = join(',', $_POST['skill']);
$stmt->bindParam(':skill', $skills);
当然还有一些其他的方法(比如将不同的值插入数据库table的不同rows/datasets)。