Mostrando entradas con la etiqueta mysql. Mostrar todas las entradas
Mostrando entradas con la etiqueta mysql. Mostrar todas las entradas

lunes, 8 de junio de 2009

Limpiar las consultas SQL antes de enviarlas

Conviene usar la función mysql_real_escape_string.

sábado, 14 de febrero de 2009

Palabras reservadas que pueden crear conflicto con PEAR

De momento he encontrado las siguientes:

GROUP
INT

La solución más sencilla es añadir a los campos con ese nombre un guión bajo al final.

Error de sintaxis en MySQL usando PEAR

Con el siguiente código:

function executeCommand( $sql, $args )
{
global $db;

$sth = $db->prepare( $sql );

if (PEAR::isError($sth)) {
die($sth->getMessage());
}

echo "

$sth de la sql $sql

";

$res=& $db->execute( $sth, $args );

if (PEAR::isError($res)) {
die($res->getMessage());
}
print_r($res);
return $res;

}

Si devuelve un error como éste: 'DB Error: syntax error', puede darse el caso de que alguno de los campos de la tabla se llamen igual que una palabra reservada. En mi caso había un campo llamado group, que obviamente entraba en conflicto con la palabra reservada GROUP. Es bueno tenerlo en cuenta cuando parece que las cosas no van sin motivo alguno.

Referencia al último ID creado por una consulta INSERT en MySQL

last_insert_id[ ]

Con paréntesis, que en caso contrario molesta a los scripts del blog.

lunes, 9 de febrero de 2009

Funciones para seleccionar datos usando PHP y MySQL

Estas funciones facilitan la extracción de datos de una base de datos MySQL usando PHP.

function conectar(){

//Conecta y devuelve la variable conexión.


$conn = mysql_connect("localhost", tu_usuario, tu_password);
mysql_select_db(tu_db);

return $conn;

}

function escribeSelectSQL($campos,$tablas,$condicion){


$consulta="SELECT ";

//añado tantos campos como me haya enviado.

$limiteCampos=count($campos);
$limiteTablas=count($tablas);

for($contador=1;$contador<=$limiteCampos;$contador+=1){

$consulta=$consulta . $campos[$contador-1];

if ($contador<$limiteCampos){

//todavía quedan campos, así que habrá que añadir una coma.

$consulta=$consulta . ", ";


}else{


//añado un espacio, por si acaso.

$consulta=$consulta . " ";

}


} //fin del for para los campos.

$consulta=$consulta . " FROM ";


for($contador=1;$contador<=$limiteTablas;$contador+=1){

$consulta=$consulta . $tablas[$contador-1];

if ($contador<$limiteTablas){

//todavía quedan campos, así que habrá que añadir una coma.

$consulta=$consulta . ", ";


}else{


//añado un espacio, por si acaso.

$consulta=$consulta . " ";

}


} //fin del for para las tablas.

//Queda añadir la cláusula WHERE y la condición.

$consulta=$consulta . " WHERE " . $condicion;

//echo ("

DEBUG: la consulta formada es $consulta.

");

$sql = mysql_query($consulta);

return $sql;

}


function devuelveRegistros($sql){

//pasada una SQL válida de selección, devolvemos los registros.


return mysql_fetch_array($sql);



}

function cierraConexion($conn){


mysql_close($conn);


}