SQL query in PDO
Dag allemaal, ik zit met een probleempje... ik heb een query gemaakt voor html maar toen ik hem in drupal stak werkte hij niet meer. Nu blijkt dat Drupal geen mysql query's meer ondersteund... enkel PDO en mysqli. Nu mijn functie is redelijk moeilijk te vinden. Ik heb 2 WHERE statements met een IN statement. Plus ik ken niks van PDO... Kan iemand me helpen om deze functie in PDO te krijgen? Alvast bedankt!
$dbww = "SELECT * FROM $db WHERE test1 IN($a) AND test2 IN($b) ORDER BY rand() LIMIT 1";
$dbww = "SELECT * FROM $db WHERE test1 IN($a) AND test2 IN($b) ORDER BY rand() LIMIT 1";
Ik denk dat je beter kunt beginnen bij het maken van de database verbinding.
Overigens, er zijn echt bergen tuts hierover en die even bekijken brengt je vele malen sneller tot een oplossing dan hier steeds een dag te wachten tot je weer een stapje verder kunt.
Overigens, er zijn echt bergen tuts hierover en die even bekijken brengt je vele malen sneller tot een oplossing dan hier steeds een dag te wachten tot je weer een stapje verder kunt.
Ik heb ook een verbinding maar ik post niet mijn hele script omdat het redelijk nutteloos is... mysql en PDO hebben niet echt veel met elkaar te maken en ik zoek alleen een methode om deze functie in pdo te krijgen... ik ben al 3 dagen aan het zoeken voor een oplossing maar vind niks dat werkt...
Dieter Martens op 02/01/2015 15:09:07:
een array
en wat staat er in de array?
Gewijzigd op 02/01/2015 15:16:41 door Frank Nietbelangrijk
Ik vrees dat je iets in de trend zoals hieronder moet gaan uitvoeren. Mooi is anders, prepared statements laten wat steekjes vallen hier en daar.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$db = "example";
$a = array(1,2,3);
$b = array(5,6,7,8);
$A = implode(array_fill(0, count($a), "?"), ",");
$B = implode(array_fill(0, count($b), "?"), ",");
$dbww = "SELECT * FROM ? WHERE test1 IN({$A}) AND test2 IN({$B}) ORDER BY rand() LIMIT 1";
$statement = $pdo->prepare($dbww);
$statement->execute(array_merge(array($db), $a, $b));
print $dbww;
?>
$db = "example";
$a = array(1,2,3);
$b = array(5,6,7,8);
$A = implode(array_fill(0, count($a), "?"), ",");
$B = implode(array_fill(0, count($b), "?"), ",");
$dbww = "SELECT * FROM ? WHERE test1 IN({$A}) AND test2 IN({$B}) ORDER BY rand() LIMIT 1";
$statement = $pdo->prepare($dbww);
$statement->execute(array_merge(array($db), $a, $b));
print $dbww;
?>
Gewijzigd op 02/01/2015 15:39:46 door Gerard M