Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z PDO, bindowanie parametrów, PDOStatement::execute(): SQLSTATE[HY093]
MMySlime
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 1
Dołączył: 22.08.2012

Ostrzeżenie: (0%)
-----


Witam,

mam problem. Wywala mi errora gdy (tak sądzę) próbuję zbindować parametry w takim oto sobie kodzie:

  1.  
  2. public function select($table,$where = NULL,$add = NULL,$how = '*'){
  3.  
  4. if($where != NULL) $where = 'WHERE '.$where;
  5.  
  6. $select = $this->db->prepare('SELECT :how FROM :table :where :add');
  7.  
  8. $select->bindParam(':how', $how);
  9. $select->bindParam(':table', $table);
  10. $select->bindParam(':where', $where);
  11. $select->bindParam(':add', $add);
  12.  
  13. $select->execute();
  14.  
  15. }
  16.  
  17. public function insert( $table, $value){
  18.  
  19. $key = array_keys($value);
  20.  
  21. $value = array_values($value);
  22.  
  23. $i = 1;
  24.  
  25. $ij = 0;
  26.  
  27. $j = null;
  28.  
  29. foreach($key as $keys){
  30. $j++;
  31. }
  32.  
  33. $values = '';
  34.  
  35. foreach($key as $keyss){
  36. $values .= $values . $keyss . ' = ?, ';
  37. }
  38.  
  39. $values = substr( $values, 0, -2 );
  40.  
  41. $insert = $this->db->prepare('INSERT INTO '.$table.' SET '.$values);
  42.  
  43. while($i < $j){
  44. $insert->bindParam($i,$value[$ij]);
  45. $i++;
  46. $ij++;
  47. }
  48.  
  49. $insert->execute();
  50.  
  51. }


Dokładny kod błędu:

  1. Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in (Jakaś ścieżka) on line 85


Nie ma co owijać w bawełnę, powiem że nie wiem zupełnie co ten błąd oznacza.
Myślę że dobrze zbindowałem wartości ale skoro PHP wywala błąd to coś jest nie tak...
Próbowałem różnych metod jednak żadna z "moich" nie działa...
Prosiłbym o pomoc.

Dziękuję za wszystkie odpowiedzi smile.gif
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 01:34