para crear la conexión
try {
$db = new PDO("mysql:dbname=".DB_NAME.";host=".DB_HOST,DB_USER,DB_PWD);
} catch (PDOException $e) {
die("Database Connection Failed: " . $e->getMessage());
}
continuación para preparar una declaración
$prep = $db->prepare("SELECT * FROM `users` WHERE userid = ':id'");
Como se puede ver, se etiqueta cada parámetro desea anteponiendo cualquier cadena con ':'. Entonces, todo lo que haces es pasar una matriz mapeando el parámetro (: id) al valor cuando lo ejecutas.
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
}
}
En lugar de PDO :: FETCH_ASSOC con la función "ir a buscar", hay varias otras maneras de obtener sus datos. Puede usar fetchAll para obtener una matriz de TODOS los resultados a la vez en lugar de ir fila por fila. O puede obtener la matriz de información como una matriz indexada 0, o incluso puede obtener los resultados directamente en una instancia de clase (si los nombres de campo se alinean con las propiedades de la clase).
Toda la documentación de PDO se puede encontrar aquí: PHP.net PDO Manual
Creo que no necesita las comillas alrededor de un marcador de posición: '" SELECCIONAR * FROM \ 'users \' WHERE userid =: id "' –