Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Problem z bindParam
Pjotrek80
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 9.04.2013

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


Próbuje napisać metodę insert. Mam problem z bindParam.

Oto fragment kodu metody:
  1. $stmt = $this->prepare($sql);
  2.  
  3. foreach($valuesArr as $valueName => $value){
  4. if(!is_array($value)){
  5. $bindValName = '"';
  6. $bindValName .= ':'.$valueName;
  7. $bindValName .= '"';
  8. $stmt->bindValue($bindValName, $value);
  9. }else {
  10. $hasParam = true;
  11. $paramArr = $value;
  12. $bindParamName = $valueName;
  13. $bindParName = '"';
  14. $bindParName .= ':'.$bindParamName;
  15. $bindParName .= '"';
  16. $stmt->bindParam($bindParName, $paramName);
  17. }
  18. }
  19.  
  20. if(!$hasParam){
  21. $stmt->execute($valuesArr);
  22. $insetItemId = $this->lastInsertId();
  23. $stmt->closeCursor();
  24. return $insetItemId;
  25. }
  26.  
  27. foreach($paramArr as $param){
  28. $paramName = $param;
  29. $stmt->execute();
  30. $id = $this->lastInsertId();
  31. array_unshift($insetItemIdArr, $id);
  32. }
  33. $stmt->closeCursor();
  34. return $insetItemIdArr;
  35.  


Wywala ostrzeżenie:
Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in...
Nie wiem co jest nie tak z paramName, bo chyba o to krzyczy?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


@Pjotrek80: Twój problem jest bardziej fundamentalny. Nie odróżniasz składni języka, która wymaga by tekst ujęty był w cudzysłowie bądź apostrofach, od składni SQL-a, który tak się składa że jest umieszczany jako... zwykły tekst. Chociaż domyślam się, że rozumiesz różnicę pomiędzy poniższymi zapisami?
  1. var_dump('Ala ma kota');
  2. var_dump('"Ala ma kota"');
  3. var_dump('\'Ala ma kota\'');


Ten post edytował Crozin 13.08.2013, 09:32:56
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: 10.10.2025 - 18:38