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

Въпросителен знак за избягване на PHP PDO, така че да не мисли, че е заместител

PDO не се обърква от въпросителния знак в кавичките. Просто тествам това с PHP 5.5.15.

$sql = "SELECT CONCAT('path/to/page/?id=', id) AS link FROM foo WHERE name = ?;";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(1, 'name');
$stmt->execute();
print_r($stmt->fetchAll());

Работи добре, без грешка за грешен брой параметри. Вашата грешка е причинена от начина, по който обвързвате параметри, а не от SQL синтаксиса.

Подозирам, че не сте ни показали цялата SQL заявка, защото WHERE без FROM така или иначе е синтактична грешка. Така че трябва да имате допълнителни контейнери за параметри, които не сте ни показали. Също така би било полезно, ако ни покажете начина, по който обвързвате параметри (или предавате параметри на execute()).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разлика между ANSI и Unicode драйвери на MySQL

  2. Неочаквано достигане на ограничението на паметта на PHP с една PDO заявка?

  3. Как мога да направя средна стойност от дати в MySQL?

  4. Използването на mysqli_real_escape_string достатъчно ли е, за да защити моя низ за заявка?

  5. Как да премахнете маркери в маркер PHP XML MYSQL GCIDE, докато оставяте текст