Autor | Zpráva | ||
---|---|---|---|
qteck Profil |
#1 · Zasláno: 24. 2. 2015, 23:02:50
Ahoj,
function getComments($arrays, $offset) { $sql = 'SELECT * FROM comments LEFT JOIN users ON users.fb_id = comments.author WHERE comments.article_id = :id ORDER BY comments.id DESC LIMIT :offset, 5'; $stmt = $this->db->pdo->prepare($sql); $stmt->bindParam(':offset', $offset, \PDO::PARAM_INT); $stmt->execute($arrays); return $stmt->fetchAll(\PDO::FETCH_ASSOC); } snažím se vytvořit stránkování. Tento kód mi vrací dvě chyby: 1× PHP Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in .../evelinkars/model/article.php:28 1× PHP Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number in .../evelinkars/model/article.php:28 Zjistil jsem že to způsobuje :offset když jí nahradím číslem tak to šlape. Dočetl jsem se že se musí definovat typ a tak proto ten bind Param. Nevíte v čem to může vězet? Díky. |
||
tiso Profil |
#2 · Zasláno: 24. 2. 2015, 23:19:24
Chýba ti tam niečo ako:
$stmt->bindParam(':id', $id, \PDO::PARAM_INT);
Čo je obsahom premennej $arrays ?
|
||
qteck Profil |
#3 · Zasláno: 24. 2. 2015, 23:23:05
to právě prochází přes execute.
spíš bych se obával zda lze tyto dvě metody předávání kombinovat $comments = $article->getComments(array(':id' => $content['articles_id']), $olderComments); |
||
tiso Profil |
#4 · Zasláno: 24. 2. 2015, 23:25:23
qteck: tak ich vyskúšaj nekombinovať. Pozri na príklady na http://php.net/manual/en/pdostatement.execute.php
|
||
qteck Profil |
#5 · Zasláno: 24. 2. 2015, 23:32:45 · Upravil/a: qteck
function getComments($arrays) { $sql = 'SELECT * FROM comments LEFT JOIN users ON users.fb_id = comments.author WHERE comments.article_id = :id ORDER BY comments.id DESC LIMIT :offset, 0'; $stmt = $this->db->pdo->prepare($sql); foreach($arrays as $key => $val) { $stmt->bindParam($key, $val, \PDO::PARAM_INT); } $stmt->execute(); return $stmt->fetchAll(\PDO::FETCH_ASSOC); } no to nenítak jendoduchý, u tohodle ano,ale mám pole kde předávám hromady dalších polí a jsou zmixovaný. PHP Warning: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''5'' at line 1 in e3lape PDOStatement #9fca queryString => "SELECT * FROM comments LEFT JOIN users ON users.fb_id = comments.author WHERE comments.article_id = :id ORDER BY comments.id DESC LIMIT :bub" (140) |
||
Časová prodleva: 9 let
|
0