Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PDO] Prosty Interpreter PDO
Forum PHP.pl > Forum > PHP
Posio
Mam problem z PDO, otóż chcę stworzyć prosty interpreter który przyspieszy mi uzywanie PDO.
kod:

  1. public function prepareInsert($table, $fields, $values, $params){
  2.  
  3. $params = explode(',', $params);
  4. $params = preg_replace('/\s+/', '', $params);
  5. for($i=0;$i<$cv;$i++){$par .= 'PDO::PARAM_'.$params[$i].', ';}
  6. $par = substr($par,0,-2);
  7. $par = explode(',', $par);
  8. echo $par['0'];
  9.  
  10.  
  11.  
  12.  
  13. try{
  14. $pdo = new PDO('mysql:host='.$this->_host.';dbname='.$this->_database.'', ''.$this->_username.'', ''.$this->_password.'');
  15. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  16. $stmt = $pdo->prepare('INSERT INTO '.$table.' ('.$qf.') VALUES ('.$vf.')');
  17. for($i=0;$i<$cf;$i++) {
  18. $stmt->bindValue($vfe[$i], $values[$i], $par[$i]);
  19. }
  20. $status = $stmt->execute();
  21. return $status;
  22. $stmt -> closeCursor();
  23. unset($stmt);
  24. }
  25. catch(PDOException $e){
  26. echo $e->getMessage();
  27. }
  28.  
  29.  
  30. }



Problem mam na poziomie wstawiania PDO::PARAM_ $param[$i]; wygląda na przykład : PDO::PARAM_STR, gdzy wstawiam tę zmienną w miejsce funkcji $stmt dostaje:

  1. Warning: PDOStatement::bindParam() expects parameter 3 to be long, string given in


Wiem w czym tkwi problem ale nie potrafie go rozwiązać...
melkorm
Bo musisz przekazać liczbę (pod tymi constami są liczby) a nie string, jak teraz to robisz.


Rozwiązanie jak zawsze jest w manualu.
Posio
a można bardziej łopatologicznie ?
melkorm
  1. var_dump('PDO::PARAM_STR');
  2.  
  3. var_dump(PDO::PARAM_STR);
  4.  
  5. $pdoReflection = new ReflectionClass('PDO');
  6. var_dump($pdoReflection->getConstant('PARAM_STR'));
Posio
Dzięki za dobre naprowadzenie smile.gif - Wszystko ogarnięte
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.