Versión: v2.3.0
query
Ejecutar una consulta Raw SQL personalizada.
query($query, $map)
query [string]
La consulta SQL a ejecutar.
map [array] (opcional)
Los valores que se vincularán en la sentencia preparada.
Valor devuelto
[PDOStatement] La instancia PDOStatement de la consulta ejecutada.
Medoo genera consultas con sintaxis SQL-92. Al escribir Raw SQL, asegúrese de que los valores estén correctamente entrecomillados y, siempre que sea posible, prefiera sentencias preparadas para reducir el riesgo de inyección SQL.
$database->query("CREATE TABLE account_storage (
c1 INT STORAGE DISK,
c2 INT STORAGE MEMORY
) ENGINE NDB;");
$data = $database->query("SELECT email FROM account")->fetchAll();
print_r($data);
Sintaxis de comillas para identificadores
Las expresiones SQL en bruto admiten una sintaxis abreviada para citar identificadores de tablas y columnas, además del manejo de prefijos de tabla. Utiliza
<name> para marcar identificadores y Medoo los convertirá en nombres de tabla o columna correctamente entrecomillados, incluidos los prefijos configurados.$data = $database->query("SELECT <email> FROM <account>")->fetchAll();
// SQL convertido:
// SELECT "email" FROM "account"
// Si se configura un prefijo de tabla, la consulta pasa a ser:
$database = new Medoo([
// ...
"prefix" => "WP_"
]);
$data = $database->query("SELECT <account.email>,<account.nickname>
FROM <account>
WHERE <id> != 100
")->fetchAll();
SELECT "WP_account"."email", "WP_account"."nickname" FROM "WP_account" WHERE "id" != 100
Sentencia preparada
query() también admite sentencias preparadas. Medoo detecta automáticamente los tipos de parámetro de los valores enlazados.$data = $database->query( "SELECT * FROM <account> WHERE <user_name> = :user_name AND <age> = :age", [ ":user_name" => "John Smith", ":age" => 20 ] )->fetchAll(); print_r($data);