Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP pdo在MySQL中插入和检索数组数据_Php_Mysql_Pdo - Fatal编程技术网

使用PHP pdo在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

请对我温柔一点,我对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     :
<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']));