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

pdoexecutegiveのエラー

    PDO::prepareマニュアル から;

    これは(悲しいことに)、クエリで同じ値を2回使用するには、バインディングをセカンダリ名で複製する必要があることを意味します。かわいくない、次のようなもの;

    $sth = $db->prepare(
      'INSERT INTO track (`rsname`, `overallranknow`, `overalllevelnow`, `overallxpnow` )' .
        'VALUES (:name, :Overalln, :Overall1, :Overall2) '. 
        'ON DUPLICATE KEY UPDATE ' .
          "rsname = :name_2"  .
          "overallranknow = :Overalln_2" .
          "overalllevelnow = :Overall1_2" .
          "overallxpnow = :Overall2_2" 
    );
    $sth->bindValue(':name', $name, PDO::PARAM_STR);
    $sth->bindValue(':name_2', $name, PDO::PARAM_STR);
    $sth->bindValue(':Overalln', $Overalln, PDO::PARAM_INT);
    $sth->bindValue(':Overalln_2', $Overalln, PDO::PARAM_INT);
    $sth->bindValue(':Overall1', $Overall[1], PDO::PARAM_INT);
    $sth->bindValue(':Overall1_2', $Overall[1], PDO::PARAM_INT);
    $sth->bindValue(':Overall2', $Overall[2], PDO::PARAM_INT);
    $sth->bindValue(':Overall2_2', $Overall[2], PDO::PARAM_INT);
    $sth->execute();
    

    編集:MySQLではVALUES ON DUPLICATE KEYのキーワード パラメータを繰り返す必要がないようにするには、この正確なケースに@YourCommonSenseの回答を使用することをお勧めします。



    1. 関連フィールドでアイテムを更新するためのフィルターフックの例

    2. JavaのpreparedStatementを使用してJSONオブジェクトをPostgresに挿入するにはどうすればよいですか?

    3. SQLServerの既存のテーブルに外部キー制約を追加する方法-SQLServer/TSQLチュートリアルパート68

    4. AWS rds-Javaアプリケーション内のリードレプリカから読み取る方法は?