PHP PDO e Mysql
08/03/2015
0
Galera,
Tudo bom?
Estou precisando de uma ajuda
Estou com a sentança php pdo banco mysql:
$buscanoticia = $pdo->prepare("SELECT n.Id as IdNot, n.Titulo, n.Imagem, n.LegendaImagem, c.Id, c.Nome, n.Subtitulo, c.CSSClass
FROM noticias as n
INNER JOIN caderno c ON c.id = n.IdCaderno
WHERE n.IdArea = 4 AND n.Id NOT IN (:listanoticiashome)
ORDER BY n.Id DESC
LIMIT 4");
$buscanoticia->bindValue(":listanoticiashome",$listanoticias);
$buscanoticia->execute()
sendo que a variável $listanoticias tem os seguintes dados: 16551, 16550, 16468, 16430, 16429, 16280, 16547, 16546, 16545, 16544, 16549, 16548, 16542, 16549, 16548, 16542, 16549, 16548, 16542, 16541, 0
ao executar o comando via script php o resultado não respeita a condição where, n.id Not In e o conjunto de valores, me retorna os valores que esteja na lista, mas quero que os valores não retornem na pesquisa.
Peguei a query e coloquei direto no mysql, substituir a variável $listanoticias pelo seu valor mencionado, executado e funcionou bacana.
Pelo php e pdo não funciona, alguém pode me ajudar ai.
Obrigado.
Tudo bom?
Estou precisando de uma ajuda
Estou com a sentança php pdo banco mysql:
$buscanoticia = $pdo->prepare("SELECT n.Id as IdNot, n.Titulo, n.Imagem, n.LegendaImagem, c.Id, c.Nome, n.Subtitulo, c.CSSClass
FROM noticias as n
INNER JOIN caderno c ON c.id = n.IdCaderno
WHERE n.IdArea = 4 AND n.Id NOT IN (:listanoticiashome)
ORDER BY n.Id DESC
LIMIT 4");
$buscanoticia->bindValue(":listanoticiashome",$listanoticias);
$buscanoticia->execute()
sendo que a variável $listanoticias tem os seguintes dados: 16551, 16550, 16468, 16430, 16429, 16280, 16547, 16546, 16545, 16544, 16549, 16548, 16542, 16549, 16548, 16542, 16549, 16548, 16542, 16541, 0
ao executar o comando via script php o resultado não respeita a condição where, n.id Not In e o conjunto de valores, me retorna os valores que esteja na lista, mas quero que os valores não retornem na pesquisa.
Peguei a query e coloquei direto no mysql, substituir a variável $listanoticias pelo seu valor mencionado, executado e funcionou bacana.
Pelo php e pdo não funciona, alguém pode me ajudar ai.
Obrigado.
Lelopes
Curtir tópico
+ 0
Responder
Posts
08/03/2015
William
Olá Lelopes, infelizmente o PDO não consegue mapear esse tipo de parâmetro "coletivo", aconselho você a proceder dessa maneira mesmo não sendo a mais indicada por questões de SQL Injection.
$buscanoticia = $pdo->prepare("SELECT n.Id as IdNot, n.Titulo, n.Imagem, n.LegendaImagem, c.Id, c.Nome, n.Subtitulo, c.CSSClass FROM noticias as n INNER JOIN caderno c ON c.id = n.IdCaderno WHERE n.IdArea = 4 AND n.Id NOT IN ({$listanoticias}) ORDER BY n.Id DESC LIMIT 4"); $buscanoticia->execute()
Responder
09/03/2015
Lelopes
Willian,
Muito obrigado.
Ontem a noite li isso no manual php.
Os injections vou tratar de outra forma, na mão mesmo.
Valeu cara, ajudou muito.
Muito obrigado.
Ontem a noite li isso no manual php.
Os injections vou tratar de outra forma, na mão mesmo.
Valeu cara, ajudou muito.
Responder
Clique aqui para fazer login e interagir na Comunidade :)