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

Проблем със свързването на параметър Mysqli

$suquery=$dbCon->prepare("select * from Table where ? LIKE ?");

Няма да работи според очакванията. Ще се преведе като:

SELECT * from table WHERE 'columnName' LIKE '%a%'

който връща всички редове, защото 'columnName' съдържа 'a'. 'columnName' е низ, а не действително име на колона.

Вторият ви опит е правилен, освен че имате допълнителни кавички в термина. Когато използвате параметри, нямате нужда от кавички. Решението е:

$term = "%".$_POST['searchTerm']."%";
$suquery=$dbCon->prepare("select * from Table where columnName LIKE ?");
$suquery->bind_param('s', $term);
$suquery->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. Как трябва да съхранявам моите sha512 солирани и хеширани пароли в MySQL?

  2. В MySQL мога ли да върна изтрити редове след изтриване?

  3. Създаване на kml файл от mysql база данни с php

  4. Как да стартирате многократна заявка за вмъкване в SQL с помощта на PHP наведнъж?

  5. синтактична грешка на DECLARE CURSOR FOR