Advertisement
Guest User

Untitled

a guest
Apr 16th, 2014
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name '0'' in...
  2.  
  3. $InsertFoo = $pdo->prepare("
  4.  
  5. INSERT INTO `MyTbl` (
  6. `ColA`,
  7. `ColB`
  8. )
  9. SELECT * FROM ( SELECT :a, :b ) AS tmp
  10. WHERE NOT EXISTS (
  11. SELECT `MyTbl`.`ColA`
  12. FROM `MyTbl`
  13. WHERE `ColA` = :aa
  14. AND `ColB` = :bb
  15. )
  16. LIMIT 1
  17.  
  18. ");
  19.  
  20. foreach ($loopme as $foo) {
  21.  
  22. // query to be executed for ticket insertion
  23. $TicketsToInsert->execute(array(
  24. a => $foo->fooA,
  25. b => $foo->fooB,
  26. aa => $foo->fooA,
  27. bb => $foo->fooB
  28. ));
  29.  
  30. }
  31.  
  32. ALTER TABLE MyTbl ADD UNIQUE (ColA, ColB);
  33.  
  34. $stmt = $pdo->prepare('INSERT INTO MyTbl (ColA, ColB) VALUES (?, ?)');
  35. foreach ($loopme as $foo) {
  36. try {
  37. $stmt->execute([$foo->fooA, $foo->fooB]);
  38. } catch (PDOException $e) {
  39. $errorCode = $stmt->errorInfo()[1];
  40. if ($errorCode == 1586) {
  41. // I think 1586 is the unique constraint violation error.
  42. // Trial and error will confirm :)
  43. } else {
  44. throw $e;
  45. }
  46. }
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement