0

csvスクリプトを実行してアップロードしようとすると、意味をなさないエラーが発生します。無効なトークン。私の列が私の ?,?,?,?,? と一致しないと表示されます。5 列、5 ? 疑問符、私は何を見逃したのですか?

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
  <form enctype="multipart/form-data" method="POST">
        <input name="userfile" type="file">
        <input type="submit" value="Upload">
        <input name="row_name" type="text">
  </form>
<?php
$dsn = "mysql:host=$host;port=$port;dbname=$dbname"; //Data Source Name = Mysql
(isset($rowname = $_POST['row_name']));
$db = new PDO($dsn, $db_username, $db_password); //Connect to DB
$do = $db->prepare(
        "CREATE TABLE IF NOT EXISTS $username.$rowname (
         id INT AUTO_INCREMENT NOT NULL,
         list_name varchar(100) NOT NULL,
         fname char(60),
         lname char(60),
         list_email varchar(100),
         PRIMARY KEY (id)
        )
        CHARACTER SET utf8 COLLATE utf8_general_ci
        TRUNCATE TABLE $username.$rowname
        INSERT INTO $username.$rowname VALUES(?,?,?,?,?)"
        );
$csv_file = $_FILES['userfile']['tmp_name'];
if (($handle = fopen($csv_file, "r")) !== FALSE) {
    while (($data = fgetcsv($handle)) !== FALSE) {
        $do->execute($data);
        var_dump($data);}
    fclose($handle);}
exit( "Complete!" );
?>
</body>
</html>

エラー

Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in /home/wemail1/www/pages/campaign-build.inc.php on line 58

サンプルデータ:

fname, lname, email
joe, schmoe, bogus@bogus.com
mary, lamb, hoe@us.com
4

1 に答える 1