Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP-PDO-Einfügung mit Schleife

Sie müssen Ihre Variablen nicht binden. Ich habe dies zuvor mit ähnlichem Code getan. Es ist jedoch schwer zu sagen, was schief läuft. Erhalten Sie eine Ausnahme – wenn ja, welche?

Das einzige, was ich falsch sehe, ist, dass Sie Ihre Vorbereitung innerhalb der Schleife haben ... sollte eher so sein:

try {
         $conn = new PDO("mysql:host=$host;dbname=$dbName", $un, $pw);
         echo 'Connected to database<br>';

        $sql = "INSERT INTO studentData (originallyAddedOn, inputMethod, studentFirst, studentLast, studentStreet, studentCity, studentState, studentZip, studentDOB, studentGender, studentGrade, schoolName, schoolStreet, schoolCity, schoolState, schoolZip, schoolContactName, schoolContactTitle, schoolContactEmail, schoolContactPhone) VALUES (:originallyAddedOn, :inputMethod, :studentFirst, :studentLast, :studentStreet, :studentCity, :studentState, :studentZip, :studentDOB, :studentGender, :studentGrade, :schoolName, :schoolStreet, :schoolCity, :schoolState, :schoolZip, :schoolContactName, :schoolContactTitle, :schoolContactEmail, :schoolContactPhone)";

        // prepare once... exceute many :-)
        $q = $conn->prepare($sql); 

        foreach($studentDataArray as $student) {
            $q->execute($yourDataArray);
            // do other stuff if needed

        }

} catch(PDOException $e) {
  echo $e->getMessage();
}