Aby utworzyć połączenie
try {
$db = new PDO("mysql:dbname=".DB_NAME.";host=".DB_HOST,DB_USER,DB_PWD);
} catch (PDOException $e) {
die("Database Connection Failed: " . $e->getMessage());
}
Następnie przygotować oświadczenie
$prep = $db->prepare("SELECT * FROM `users` WHERE userid = ':id'");
Jak widać, to etykieta każdy parametr, który chcesz poprzedzając każdy ciąg z „:”. Następnie wystarczy przekazać tablicę odwzorowującą parametr (: id) na wartość podczas wykonywania.
if (!$prep->execute(array(":id" => $userinput))) {
$error = $prep->errorInfo();
echo "Error: {$error[2]}"; // element 2 has the string text of the error
} else {
while ($row = $prep->fetch(PDO::FETCH_ASSOC)) { // check the documentation for the other options here
// do stuff, $row is an associative array, the keys are the field names
}
}
Zamiast PDO :: FETCH_ASSOC z funkcji „fetch”, istnieje wiele innych sposobów na zdobycie danych. Możesz użyć fetchAll, aby uzyskać tablicę WSZYSTKICH wyników naraz, zamiast przechodzić kolejno po wierszach. Lub możesz uzyskać tablicę informacji jako tablicę z indeksowaniem 0, lub możesz nawet pobrać wyniki bezpośrednio do instancji klasy (jeśli nazwy pól pokrywają się z właściwościami klasy).
Cała dokumentacja PDO można znaleźć tutaj: PHP.net PDO Manual
Uważam, że nie potrzebujesz cytatów wokół symbolu zastępczego: '" SELECT * FROM \ 'users \ "WHERE userid =: id" ' –