by
104 8
0
5
1,111
7
Top 1% !
Popular
Famous
Specified
OpenSource
Popularity: 1227023rd place
Created
Modified Mar 30, 2017

Published on:

No tags for this snippet yet.
Languagephp
LicenseMIT_X11

Clonar registros en mysql

Si necesitas una función 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 función.

Fuente: https://rg1024.wordpress.com/2011/07/11/clonar-registros-en-mysql/
Copy Embed Code
<iframe id="embedFrame" style="width:600px; height:300px;"
src="https://www.snip2code.com/Embed/1728886/Clonar-registros-en-mysql?startLine=0"></iframe>
Click on the embed code to copy it into your clipboard Width Height
Leave empty to retrieve all the content Start End
<?php function mysql_clonar_registro ( $tabla, $clave ) { // limpieza parámetros $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 ); // clonar el registro mediante una SQL if ( $campoClave && count($campos)>0 ) { $SQL = sprintf( "INSERT INTO $tabla ( SELECT %s FROM $tabla WHERE %s='%s' )", implode(",",$campos), $campoClave, $clave ); mysql_query ($SQL); return mysql_affected_rows(); } return false; } ?>
If you want to be updated about similar snippets, Sign in and follow our Channels

blog comments powered by Disqus