Запрос PDO "LIKE" - PullRequest
       3

Запрос PDO "LIKE"

4 голосов
/ 24 августа 2010

Поскольку я новичок в использовании PDO и столкнулся с проблемой при отклонении от простого выбора из запроса, я решил, что лучше всего спросить здесь.

Код:

  $sDbase = str_replace('`', '', $modx->db->config['dbase']);
  $oPdo = new PDO("mysql:host=localhost;dbname=" . $sDbase . ";",   $modx->db->config['user'], $modx->db->config['pass']);
  $oPdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  if(isset($_POST["search"]))
  {
    $sSearch = (!empty($_POST["search"])) ? mysql_real_escape_string($_POST["search"]) : "" ;
  }

  $sSearch = 'beer' ;

  $sQry = <<< QRY
    SELECT
      contentid AS standid
      ,value AS found
      ,pagetitle
      ,published
    FROM 
      modx_site_tmplvar_contentvalues
    RIGHT JOIN
      modx_site_content
      ON
      modx_site_content.id = modx_site_tmplvar_contentvalues.contentid
    WHERE
      ( tmplvarid = 41 OR tmplvarid = 40 )
    AND
      (value LIKE '%:search%'
      OR
      pagetitle LIKE '%:search%')
    AND
      published = '1'
    ORDER BY
      pagetitle
    ASC
QRY;

  $oRes = $oPdo->prepare( $sQry );
  $oRes -> bindParam( ":search", $sSearch );
  $oRes -> execute() ;

  $aRow = $oRes->fetchAll();
  $oRes -> closeCursor();


  var_dump($aRow);

Переменная $sSearch - это то, что я хочу связать с :search в запросе.Для этого примера я установил значение в нем, но, очевидно, я хочу заменить его на переменную POST, поэтому я в первую очередь хочу использовать PDO.

Однако запрос был протестирован.с $sSearch, замененным некоторым поисковым значением и работающим, но теперь я использовал PDO для выполнения того же запроса, и я получаю пустой результат.Ну, на самом деле пустой массив.

Так чего мне здесь не хватает?

1 Ответ

7 голосов
/ 10 февраля 2013

Согласно комментарию Амелии, вот ответ:

$sSearch = '%bier%' ;

и

value LIKE :search

сделал свое дело.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...