Requête préparé avec ? ne récupère rien
Posté : 29 janv. 2019, 18:54
Bonjour à tous,
Pourriez vous m'aider?
J'ai une fonction qui permet de matcher dans ma base une date en la décomposant, avec différents paramètres ex '1 à 4 mois' '2 semaines' les paramètres aussi.
J'ai une fonction pour matcher avec un nombre de paramètre qui varie, qui va chercher en base de données, mais cela ne fonctionne pas
J'ai avec mon var_dump
Si je test dans phpmyadmin
J'ai bien le bonne id retourné et pas d'erreur pdo.
Je pense que le problème vient des ?.
Auriez vous une piste?
Merci
Pourriez vous m'aider?
J'ai une fonction qui permet de matcher dans ma base une date en la décomposant, avec différents paramètres ex '1 à 4 mois' '2 semaines' les paramètres aussi.
J'ai une fonction pour matcher avec un nombre de paramètre qui varie, qui va chercher en base de données, mais cela ne fonctionne pas
Code : Tout sélectionner
public function getIdTermDateWp(array $terms) : int
{
try
{
$db = $this->db;
$params = array($this->taxonomies['category']);
// USE SLUG
$sql = "SELECT te.term_id FROM pu_wp_term_taxonomy as ta
INNER JOIN pu_wp_terms as te ON ta.term_taxonomy_id = te.term_id
WHERE ta.taxonomy = ? && te.slug LIKE '%";
foreach($terms as $term)
{
$sql .= '?%';
array_push($params, $term);
}
$sql .= "'"; // close like parameters
$stmt = $db->prepare($sql);
$stmt->execute(array_values($params));
$row = $stmt->fetch();
echo '<pre style="background-color:black;color:white;">';var_dump($sql, $params, $row);echo '</pre>';die;
return (!empty($row['term_id'])) ? $row['term_id'] : 0;
}
catch(PDOException $e)
{
echo 'getIdTerm term:' . $terms . ' error ' . $e->getMessage();
return 0;
}
}Code : Tout sélectionner
string(175) "string(175) "SELECT te.term_id FROM pu_wp_term_taxonomy as ta
INNER JOIN pu_wp_terms as te ON ta.term_taxonomy_id = te.term_id
WHERE ta.taxonomy = ? && te.slug LIKE '%?%?%?%'"
array(4) {
[0]=>
string(16) "listing_category"
[1]=>
string(1) "1"
[2]=>
string(1) "4"
[3]=>
string(4) "mois"
}
bool(false)Code : Tout sélectionner
SELECT te.term_id FROM pu_wp_term_taxonomy as ta INNER JOIN pu_wp_terms as te ON ta.term_taxonomy_id = te.term_id WHERE ta.taxonomy = 'listing_category' && te.slug LIKE '%1%4%mois%' Je pense que le problème vient des ?.
Auriez vous une piste?
Merci