2016-11-24 85 views
1

我在向数据库提交输入数组时遇到了一些问题。将数组提交到数据库

更具体地说,我收到了这个错误“数组到字符串转换”,我绑定了参数。我如何通过foreach循环提交数组,以便它们都是彼此独立的。

这里是形式

<form name = "entries" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
<input type="text" class="form-control input-lg" name="myInputs[]"> 
<input type="text" class="form-control input-lg" name="myInputs[]"> 
<input type="text" class="form-control input-lg" name="myInputs[]"> 
<input id = "submit1" name="submit1" type="submit"> 

这里是PHP

$inputs = (empty($_POST['myInputs'])) ? : $_POST['myInputs'] ; 
    foreach ((array)$inputs as $eachInput) { 
     $query = $db->prepare("INSERT INTO `entries` (entries) VALUES(:inputs)"); 
     $query->bindParam(':inputs', $inputs, PDO::PARAM_STR); 
     $query->execute(); 
    } 

回答

1

请尝试下面的代码来替换你的PHP代码。

$inputs = $_POST['myInputs']; 
if(count($inputs) > 0) { 
    foreach ($inputs as $eachInput) { 
     $query = $db->prepare("INSERT INTO `entries` (entries) VALUES(:inputs)"); 
     $query->bindParam(':inputs', $eachInput, PDO::PARAM_STR); 
     $query->execute(); 
    } 
} 

如果有任何查询,然后让我知道。

+0

谢谢你,真棒。为什么我必须将它从$ inputs =(empty($ _ POST ['myInputs']))更改? :$ _POST ['myInputs'];到$ inputs = $ _POST ['myInputs'];虽然?这是我不明白的唯一部分 – user3594895

+0

@ user3594895我只是在正确的方式。如果你有空数组,那么不需要运行foreach循环。你的代码也是对的:) – Jalpa