sql >> データベース >  >> RDS >> Mysql

PDOStatement ::execute():SQLSTATE [HY093]:無効なパラメーター番号:バインドされた変数の数がトークンの数と一致しません

    配列をexecuteメソッドに渡すだけで済みます。したがって、更新されたコードは次のようになります。

    $sql = 'INSERT INTO `' . $table_name . '` '
                . '(`day`, `campaign_name`, `campaign_id`, `views`, `CPM`, `cost`, `currency`, `cost_EUR`) VALUES '
                . '(:day, :campaign_name, :campaign_id, :views, :CPM, :cost, :currency, :cost_EUR)';
    $sth = $this->_dbi->prepare($sql);    
    $sth->execute(array(
                ':day'        => $day,
                ':campaign_name'      => $campaignName,
                ':campaign_id'    => $campaignID,
                ':views'          => $views,
                ':CPM'        => $cpm,
                ':cost'     => $cost_EUR,
                ':currency'       => 'EUR',
                ':cost_EUR' => $cost_EUR
    ));
    

    詳細はこちら: http://php.net/manual/en/pdostatement.execute .php




    1. IDENTITY列を広げることによる影響の最小化–パート4

    2. LaravelからSQLServer(sqlsrv)へ。 [PDOException]はドライバーを見つけることができませんでした

    3. (+)mysqlの外部結合の構文

    4. SQL Server2008R2からMySQLへの移行