Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

pdo mengeksekusi kesalahan give

Dari PDO::prepare manual ;

Itu (sayangnya) berarti Anda harus menduplikasi binding Anda dengan nama sekunder untuk menggunakan nilai yang sama dua kali dalam kueri. Tidak cantik, seperti;

$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();

EDIT:Karena MySQL mengizinkan VALUES kata kunci di ON DUPLICATE KEY agar tidak perlu mengulang parameter, sebaiknya gunakan jawaban @YourCommonSense untuk kasus yang sama persis.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql bergabung bersyarat tergantung pada kolom

  2. Dapatkan n catatan pertama/terakhir per grup dengan

  3. Bagaimana cara menggunakan skrip berbasis PHP/MySQL untuk melarang blok IP dari situs web?

  4. Haruskah pengembang PHP menggunakan prosedur tersimpan MySQL?

  5. Apakah lebih baik menggunakan INNER JOIN atau EXISTS untuk menemukan milik beberapa dalam relasi m2m?