Mysql
 sql >> база данни >  >> RDS >> Mysql

SQLSTATE[HY093]:Невалиден номер на параметър:броят на свързаните променливи не съвпада с броя на токените на ред 102

Не сте обвързали всичките си връзки тук

$sql = "SELECT SQL_CALC_FOUND_ROWS *, UNIX_TIMESTAMP(publicationDate) AS publicationDate     FROM comments WHERE articleid = :art 
ORDER BY " . mysqli_escape_string($order) . " LIMIT :numRows";

$st = $conn->prepare( $sql );
$st->bindValue( ":art", $art, PDO::PARAM_INT );

Декларирахте обвързване, наречено :numRows, но всъщност никога не обвързвате нищо с него.

АКТУАЛИЗАЦИЯ 2019:Продължавам да получавам гласове за това и това ми напомни за друго предложение

Двойните кавички са интерполация на низ в PHP, така че ако ще използвате променливи в низ с двойни кавички, е безсмислено да използвате оператора concat. От друга страна, единичните кавички не са интерполация на низ, така че ако имате само една променлива в края на низ, тя може да има смисъл или просто да я използвате за целия низ.

Всъщност тук има налична микро операция, тъй като интерпретаторът не се интересува от анализа на низа за променливи. Увеличението е почти незабележимо и напълно игнорируемо в малък мащаб. Въпреки това, в много голямо приложение, особено добрите стари наследени монолити, може да има забележимо увеличение на производителността, ако низовете се използват по този начин. (и IMO, така или иначе е по-лесно за четене)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка в синтаксиса на MySQL ПРИ АКТУАЛИЗИРАНЕ НА ДУБЛИРАН КЛЮЧ

  2. Laravel Eloquent Ignore Casing

  3. Добра превенция от MYSQL инжектиране?

  4. Какъв е недостатъкът при използването на поле с размер на дълъг текст на MySQL, когато всеки запис ще се побере в поле с размер на среден текст?

  5. Премахнете всички нечислови знаци от поле