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!
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();
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();
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)
255 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf