2017-07-08 142 views
1

让我首先说我google了这个并尝试了不同的东西,但我仍然卡住,需要一些帮助,因为这是我第一次尝试用php复选框... 我有一个部分我的HTML文件,如下所示如何将复选框中的值添加到数据库

<label class="labelStyle" for="text">XXX:</label> 
         <div class="checkboxAlign"> 
          <input type="checkbox" name="XX[]" value="Apple">Apple<br> 
          <input type="checkbox" name="XX[]" value="Orange">Orange<br> 
          <input type="checkbox" name="XX[]" value="Strawberry">Strawberry<br> 
         </div> 

但我有它的PHP部分的麻烦,因为它是不加检查的项目,我的数据库。

试试这个

if (!empty($_POST['XX'])) 
{ 
    foreach($_POST['XX'] as $check) 
    { 
     if(!($stmt = $mysqli->prepare("INSERT INTO table 
      id = (
       SELECT id 
       FROM yy 
       WHERE xx = ?)"))){ 
      echo "Prepare failed: " . $stmt->errno . " " . $stmt->error; 
     } 
     if(!($stmt->bind_param("s", $_POST['XX']))) { 
     echo "Bind failed: " . $stmt->errno . " " . $stmt->error; 
    } 

    } 
} 

我知道这个问题是这样的PHP代码片段中,但我不知道我做错了。任何帮助,将不胜感激。

谢谢!

+0

'WHERE FoodTriggerItem =?'是语法 – colburton

+0

@colburton我想,太 – rose

+0

@rose试试我的回答 –

回答

2

试试这个

if (!empty($_POST['XX'])) 
{ 
    foreach($_POST['XX'] as $check) 
    { 
     if(!($stmt = $mysqli->prepare("INSERT INTO table 
      id = (
       SELECT id 
       FROM yy 
       WHERE xx = ?)"))){ //added ? in place of $check 
      echo "Prepare failed: " . $stmt->errno . " " . $stmt->error; 
     } 
     if(!($stmt->bind_param("s", $check))) { // added $check in place of $_POST['XX'] 
      echo "Bind failed: " . $stmt->errno . " " . $stmt->error; 
     } 


    } 
} 
+0

其实这个工程!我刚刚忘了添加一些东西...谢谢! – rose

1

变化

if(!($stmt->bind_param("s", $_POST['FoodTriggerItem']))) { 
        echo "Bind failed: " . $stmt->errno . " " . $stmt->error; 
       } 

TO

if(!($stmt->bind_param("s", $check))) { 
        echo "Bind failed: " . $stmt->errno . " " . $stmt->error; 
       } 
相关问题