Mysql
 sql >> база данни >  >> RDS >> Mysql

pdo изпълни грешка дай

От PDO::prepare manual ;

Това (за съжаление) означава, че ще трябва да дублирате своите обвързвания с вторични имена, за да използвате една и съща стойност два пъти в заявка. Не е красиво, нещо като;

$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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как ще задам стойността по подразбиране на типа данни на MySQL enum като „Не“?

  2. Групиране на записи от цикъл while | PHP

  3. Възникна фатална грешка по време на изпълнение на командата. mysql-конектор .net

  4. Как мога да променя няколко таблици наведнъж в mysql?

  5. Коя е най-добрата дефиниция на поле за съхраняване на .NET десетичен знак в MySQL?