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

Използване на PHP променлива преди MYSQL заявка

Освен популярната препоръка да не използвате mysql_* функциите,
трябва да се уверите, че нямате никакви бели интервали в елементите на вашия масив.

Ето примерен код за премахване и отстраняване на грешки в заявката на всяка стъпка.

<?php

$elements = array('  element A', "\t Element B \r\n");

var_dump($elements);

/*
use var_dump to check your array elements for whitespace and such
array(2) {
  [0]=>
  string(11) "  element A"
  [1]=>
  string(14) "   Element B
"
}
*/

// create your IN clause string and verify it
$joinedString = "('" . join("','",array_map('trim',$elements)) . "')";

var_dump($joinedString);
/*
use var_dump not echo
string(25) "('element A','Element B')"

*/

// your query string finally becomes
$query = "SELECT * FROM smoelenboek 
WHERE sectie1 IN $joinedString 
OR sectie2 IN $joinedString 
OR sectie3 IN $joinedString 
OR sectie4 IN $joinedString 
OR sectie5 IN $joinedString 
AND actief='ja' ORDER BY achternaam ASC";

// and check it with var_dump and also run it in PhpMyAdmin
var_dump($query);
/*
string(280) "SELECT * FROM smoelenboek
WHERE sectie1 IN ('element A','Element B')
OR sectie2 IN ('element A','Element B')
OR sectie3 IN ('element A','Element B')
OR sectie4 IN ('element A','Element B')
OR sectie5 IN ('element A','Element B')
AND actief='ja' ORDER BY achternaam ASC"
*/


  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 се прекъсва автоматично. Как да конфигурирате правилно Connector/J?

  2. Как да генерирам автоматично миграции със Sequelize CLI от модели на Sequelize?

  3. Django – OperationalError:(1054, неизвестна колона „xx“ в „списък с полета“)

  4. SELECT INTO в MySQL

  5. MySQL - колко реда мога да вмъкна в един оператор INSERT?