使用PHP pdo在MySQL中插入和检索数组数据
请对我温柔一点,我对PHP和MySQL非常陌生。使用PHP pdo在MySQL中插入和检索数组数据,php,mysql,pdo,Php,Mysql,Pdo,请对我温柔一点,我对PHP和MySQL非常陌生。 我正在尝试使用PDO在MySQL中插入和检索数据。 下面是使用POST将数据发送到我的PHP的HTML表单 <FORM ACTION="index.php" METHOD=POST> Update# : <INPUT TYPE=TEXT NAME="update_num" align="left" LENGTH=2 required > <P> <P> ETO : <INPU
我正在尝试使用PDO在MySQL中插入和检索数据。 下面是使用POST将数据发送到我的PHP的HTML表单
<FORM ACTION="index.php" METHOD=POST>
Update# :
<INPUT TYPE=TEXT NAME="update_num" align="left" LENGTH=2 required >
<P>
<P>
ETO :
<INPUT TYPE=TEXT NAME="eto" LENGTH=30 >
</P>
<P>
CAD# :
<INPUT TYPE=TEXT NAME="cad" LENGTH=30 >
</P>
<p>
CMS:
</p>
<h6>Hold Down control(CTRL) key to select multiple CMSs</h6>
<SELECT NAME = "cms[]" multiple>
<option></option>>
<option>#1</option>>
<option>#2</option>>
<option>#3</option>>
<option>#4</option>>
</SELECT>
</p>
<INPUT TYPE=SUBMIT VALUE="Submit Form" align="center">
</FORM>
</INPUT>
我的数据已成功插入,但cms列现在只显示数组
我使用以下代码检索数据
$query="SELECT cms FROM dutypage ORDER BY dateOf DESC";
$data=$conn->query($query);
$result = $data->fetchAll(PDO::FETCH_ASSOC);
var_dump($result);
foreach ($result as $output) {
echo $output['cms'];
echo "<br>";
}
我在表单中选择的选项是否实际传递到MySQL中的数组中 PHP在这里尝试将$\u POST[“cms”]数组转换为字符串,这基本上是不可能的。因此PHP输出字符串“Array”。
如果要将数组保存到dbs中,我建议您使用函数对其进行JSON编码。
所以:cms的bindParam应该如下所示:
$stmt->bindParam(':cms',json_encode($\u POST['cms'])代码>
要在获取时返回数组,只需对字符串使用函数
祝您度过愉快的一天。PHP尝试在这里将$\u POST[“cms”]数组转换为字符串,这基本上是不可能的。因此PHP输出字符串“Array”。
如果要将数组保存到dbs中,我建议您使用函数对其进行JSON编码。
所以:cms的bindParam应该如下所示:
$stmt->bindParam(':cms',json_encode($\u POST['cms'])代码>
要在获取时返回数组,只需对字符串使用函数
祝您度过愉快的一天。因为您已将cms设置为多选表单
<SELECT NAME = "cms[]" multiple>
<option></option>
<option>#1</option>
<option>#2</option>
<option>#3</option>
<option>#4</option>
</SELECT>
3) 您可以创建一个新的一对多表,该表将包含update_num和cms。对于每个选择的值,在该表中进行新的插入,因为您已将cms设置为多个选择表单
<SELECT NAME = "cms[]" multiple>
<option></option>
<option>#1</option>
<option>#2</option>
<option>#3</option>
<option>#4</option>
</SELECT>
3) 您可以创建一个新的一对多表,该表将包含update_num和cms。对于每个选择的值,在该表中插入一个新的内容请尝试避免为实际的文本内容插入大而臃肿的屏幕截图。我们无法以这种格式剪切和粘贴您的代码,这在试图重现问题时通常很有帮助。请尝试并避免为实际文本内容添加大而臃肿的屏幕截图。我们无法以这种格式剪切和粘贴您的代码,这在尝试重现问题时通常很有用。
<SELECT NAME = "cms[]" multiple>
<option></option>
<option>#1</option>
<option>#2</option>
<option>#3</option>
<option>#4</option>
</SELECT>
$stmt->bindParam(':cms', json_encode($_POST['cms']));