sql >> Base de Datos >  >> RDS >> Mysql

mysql_query a PDO y declaraciones preparadas

PHP proporciona bastantes funciones convenientes que hacen muchas de las cosas que haces a mano.

  • PDO admite parámetros con nombre en sus declaraciones SQL, para que luego pueda pasar una matriz de clave/valor donde las claves coincidan con los marcadores de posición de su parámetro nombrado.
  • El join() La función es muy útil para crear listas separadas por comas.
  • Existen muchas funciones para manipular matrices .
  • Algunas funciones le permiten dar una devolución de llamada (que puede ser un cierre en PHP 5.3), para procesar matrices dinámicamente.

Ejemplo (no probado):

function insertFields($fields) {
    $columns = join(",", array_map(
        function($col) { return "`".preg_replace("/`/gu","``",$col)."`"}, 
        array_keys($fields)));

    $params = join(",", array_map(
        function($col) { return ":".preg_replace("/[`\s]/gu","",$col)},
        array_keys($fields)));

    $stdquery = "INSERT INTO masteridx ({$columns}) VALUES ({$params})";
    $stmt = $pdo->prepare($stdQuery);
    $stmt->execute($fields);
}