bind_param与数组$ i php database

时间:2017-02-23 10:28:42

标签: php mysql database mysqli

我正在尝试将数据中的数据插入到我的数据库中。我发现很少有人有类似的问题所以它可能是重复的,但答案根本没有帮助我,因为他们在代码中没有$i变量。那么请你帮我把这些值插入我的数据库吗?

 for ($i=0; $i < $_SESSION["count"]; $i++) {

   // Create connection
   $conn = new mysqli($servername, $username, $password, $dbname);
   // Check connection
   if ($conn->connect_error) {
      die("Connection failed: " . $conn->connect_error);
   }
     $stmt = ("INSERT INTO dite (name, lname, adress, bday, inf1, inf2, inf3, id_o, id_m, id_p) VALUES (?,?,?,?,?,?,?,?,?,?);");
     $stmt->bind_param("sssssssiii",$_SESSION["name$i"], $_SESSION["lname$i"],
                      $_SESSION["adress$i"], $_SESSION["bday$i"],
                      $_SESSION["inf1$i"], $_SESSION["inf1$i"],
                      $id_o, $id_m, $id_p);
     $stmt->execute();
     printf("%d Row inserted.\n", $stmt->affected_rows);
     $stmt->close();

     $conn->close();
 }

非常感谢每一位帮助!

编辑:

如果我在每次会话中都echo loop,我会得到这个:

test_name0 
test_lname0
test_address0
test_bday0
test_inf10
test_inf20
        //(blank)


test_name1 
test_lname1
test_address1
test_bday1
test_inf11
                 //(blank)
asdfg1

and $id_o = 0; $id_m = 0; $id_p = 0;

错误看起来像这样:

  

在第210行的C:\ wamp64 \ www \ login \ file.php中调用字符串上的成员函数bind_param()。

第210行是:

$stmt->bind_param("sssssssiii",$_SESSION["name$i"], $_SESSION["lname$i"],

1 个答案:

答案 0 :(得分:0)

  

准备并绑定。

在您的查询中,您只是在没有准备的情况下绑定。

<?php

    for ($i=0; $i < $_SESSION["count"]; $i++) {

       // Create connection
       $conn = new mysqli($servername, $username, $password, $dbname);
       // Check connection
       if ($conn->connect_error) {
          die("Connection failed: " . $conn->connect_error);
       }
         $stmt = $conn->prepare("INSERT INTO dite (name, lname, adress, bday, inf1, inf2, inf3, id_o, id_m, id_p) VALUES (?,?,?,?,?,?,?,?,?,?);");
         $stmt->bind_param("sssssssiii",$_SESSION["name$i"], $_SESSION["lname$i"],
                          $_SESSION["adress$i"], $_SESSION["bday$i"],
                          $_SESSION["inf1$i"], $_SESSION["inf1$i"],
                          $id_o, $id_m, $id_p);
         $stmt->execute();
         printf("%d Row inserted.\n", $stmt->affected_rows);
         $stmt->close();

         $conn->close();
     }
     ?>