Поскольку я новичок в использовании 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 для выполнения того же запроса, и я получаю пустой результат.Ну, на самом деле пустой массив.
Так чего мне здесь не хватает?