Comme je ne connais pas bien PDO et que je rencontre un problème en cas de déviation par rapport à une simple requête de sélection, je me suis dit que je ferais mieux de demander par ici.Requête PDO 'LIKE'
Le code:
$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);
La $sSearch
variable est ce que je veux lier à :search
dans la requête. Pour cet exemple, j'ai défini une valeur, mais évidemment je veux remplacer cela par une variable POST, c'est pourquoi je veux utiliser PDO en premier lieu.
Cependant, la requête a été testée avec $sSearch
remplacé par une valeur de recherche et fonctionne, mais maintenant j'ai utilisé PDO pour effectuer la même requête, et j'obtiens un résultat vide. Eh bien, un tableau vide vraiment.
Alors qu'est-ce qui me manque ici?
Désolé, Mon mauvais. J'ai déjà trouvé la solution: $ sSearch = '% bier%'; et la valeur comme: – Amelia
Pouvez-vous poster votre commentaire comme une réponse afin que nous puissions l'obtenir de la liste "sans réponse"? Merci. –