alioooopMedlem sedan feb. 2008120 inlägg hej
försöker använda mig utav en dynamisk LIMIT i mysql så jag skriver så här:
$sql = "SELECT * FROM Users WHERE Uname LIKE CONCAT('%', ? ,'%') AND Active = 1 ORDER BY Uname LIMIT ?";
$q = $conn->prepare($sql);
$q->execute(array($searchword, $count));
men ag får inte fram något, och har genom att sätta in en vanlig siffra istället för "?" insett att det är limit som failar!
hur löser jag detta?
MVH Ali
Gissning: Du måste binda parametrarna med explicita typer. Gissningsvis skickas $count vidare som t ex '5' om du inte gör det, vilket resulterar i LIMIT '5' vilket inte är så lyckat.
$sql = "SELECT * FROM Users WHERE Uname LIKE CONCAT('%', ? ,'%') AND Active = 1 ORDER BY Uname LIMIT ?";
$q = $conn->prepare($sql);
$q->bind_param('s', $sw)
$q->bind_param('i', $ct)
$sw = $searchword;
$ct = $count;
$q->execute();
alioooopMedlem sedan feb. 2008120 inlägg
nitro2k01 skrev:
Gissning: Du måste binda parametrarna med explicita typer. Gissningsvis skickas $count vidare som t ex '5' om du inte gör det, vilket resulterar i LIMIT '5' vilket inte är så lyckat.
$sql = "SELECT * FROM Users WHERE Uname LIKE CONCAT('%', ? ,'%') AND Active = 1 ORDER BY Uname LIMIT ?";
$q = $conn->prepare($sql);
$q->bind_param('s', $sw)
$q->bind_param('i', $ct)
$sw = $searchword;
$ct = $count;
$q->execute();
din metod funkade inte, det står:
Fatal error: Call to undefined method PDOStatement::bind_param()
Ah, du kör PDO, då är syntaxen lite annorlunda. Prova:
$sql = "SELECT * FROM Users WHERE Uname LIKE CONCAT('%', ? ,'%') AND Active = 1 ORDER BY Uname LIMIT ?";
$q = $conn->prepare($sql);
$q->bindParam(1, $searchword, PDO::PARAM_STR);
$q->bindParam(2, $count, PDO::PARAM_INT);
$q->execute();
alioooopMedlem sedan feb. 2008120 inlägg
nitro2k01 skrev:
Ah, du kör PDO, då är syntaxen lite annorlunda. Prova:
$sql = "SELECT * FROM Users WHERE Uname LIKE CONCAT('%', ? ,'%') AND Active = 1 ORDER BY Uname LIMIT ?";
$q = $conn->prepare($sql);
$q->bindParam(1, $searchword, PDO::PARAM_STR);
$q->bindParam(2, $count, PDO::PARAM_INT);
$q->execute();
TACK nu funkar det :D kanske borde ha sagt att jag använder pdo (a)