Documente Academic
Documente Profesional
Documente Cultură
Si necesitas una funcin para clonar registros, aqu tienes unas. La idea es sencilla: usar SQL para clonar un
registro. En esencia es algo as:
INSERT INTO tabla (SELECT * FROM tabla WHERE id=..)
El problema es que la SQL anterior no funciona si tienes un campo clave (99% de las tablas, o un campo
nico). As que toca refinar mas la funcin.
function mysql_clonar_registro ( $tabla, $clave ) {
// limpieza parmetros
$tabla= mysql_real_escape_string($tabla);
$clave= mysql_real_escape_string($clave);
// obtener lista de campos, no nicos
$rsCampos = mysql_query("SHOW COLUMNS FROM $tabla");
$campos= array();
$campoClave ="";
while ( $campo = mysql_fetch_array($rsCampos) ){
if ( $campo["Key"] == "PRI" ){
$campoClave = $campo[0];
}
$campos[] = $campo["Key"] == "PRI" || $campo["Key"] == "UNI" ? "NULL":
$campo[0];
}
mysql_free_result ( $rsCampos );
3. Inicia el servidor mysql, en background, con la opcin skip-grant-tables. Esto activa Mysql sin
cargar las tablas de privilegios.
4. sudo mysqld --skip-grant-tables &
Con esta orden entras al cliente con la cuenta root y seleccionas la base de datos mysql, donde se
guarda toda la configuracin del servidor. Los siguientes dos pasos se realizan dentro de este cliente.
7. Cambia la contrasea usando este comando SQL:
8. mysql> UPDATE user SET Password=PASSWORD('nuevacontrasea')
9.
WHERE User='root';
10. Refresca los privilegios con el siguiente comando SQL y cierra el cliente:
11. mysql> FLUSH PRIVILEGES; ..
12. mysql> exit
/etc/init.d/mysql restart
- hemos llamado al ndice combinado (1 paso), pero ese nombre no se utiliza para nada.
- con muchos resultados positivos (una palabras que aparezca en todos los registros) MATCH tambin
devuelve cero.
A pesar de sus peculiaridades los campos FULLTEXT son muy tilespero raritos