PHP PDO e Mysql

08/03/2015

0

PHP

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.
Lelopes

Lelopes

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.
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar