This script in PHP to populate with demo data tables MySQL.
Remove the primary key before run.
<?php
/** Rotina para popular tabela do MySQL com massa de testes
* Colaboração de Ribamar FS - http://ribafs.net - 14/03/2007
* Requer remoção da chave primária antes da execução.
*/
?>
<html><head><title>Inserir Registros de Teste</title></head>
<body bgcolor=''>
<h2 align=center>Cadastrar Tabela do MySQL com Massa de Testes</h2>
<h3 align=center><font color=red>Remova chave primáia da tabela, antes de executar</font></h3>
<h4 align=center>Observe que nem todos os tipos de dados foram contemplados, alguns ficarão como string</h4>
<table align=center>
<form method='POST' name=frmIns action='popula_table.php'>
<tr><td>Host</td><td><input type=text name='host' value='127.0.0.1'></td></tr>
<tr><td>Banco</td><td><input type=text name='banco' value='cliente'></td></tr>
<tr><td>Usuáio</td><td><input type=text name='usuario' value='root'></td></tr>
<tr><td>Senha</td><td><input type=text name='senha'></td></tr>
<tr><td>Tabela</td><td><input type=text name='tabela' value='clientes'></td></tr>
<tr><td>Registros</td><td><input type=text name='registros' value=5></td></tr>
<tr><td></td><td><input type=submit name='popular' value='Popular'></td></tr>
</form>
</table>
</body>
</html>
<?php
if(isset($_POST['popular'])){
$host=$_POST['host'];
$banco=$_POST['banco'];
$usuario=$_POST['usuario'];
$senha=$_POST['senha'];
$tabela=$_POST['tabela'];
$registros=$_POST['registros'];
$numericos=$_POST['numericos'];
$conexao=mysql_connect($host,$usuario,$senha);
if ($conexao){
$sel=mysql_select_db($banco,$conexao);
if(!$sel) die('Erro ao selecionar o banco'.mysql_error());
}else{
die ('Erro ao conectar ao banco '.mysql_error());
}
$str="SELECT * FROM $tabela";
$consulta= mysql_query($str,$conexao);
$nc=mysql_num_fields($consulta);
$nr=mysql_num_rows($consulta);
$n='';//numericos (int, tinyint, smallint, bigint, etc)
$r=''; //reais (float e double)
$s="'";//strings
$d=date('Y-m-d'); //datas
$dt=date('Y-m-d H:i:s');//datatimes
$o=''; //outros
$inscod .="INSERT INTO $tabela (";
for ($j = 0; $j < $nc; $j++) {
$campo = mysql_field_name($consulta, $j);
if ($j < $nc-1) $inscod .= "$campo,";
else $inscod .= "$campo";
}
$inscod .= ")";
$inscod .= " VALUES (";
for ($j = 0; $j < $nc; $j++) {
$tam = mysql_field_len($consulta, $j);
//if(($tam)>20) $tam=20; //Caso queira limitar os campos ao máximo de 20 posições
if ($j < $nc-1){
switch (mysql_field_type($consulta, $j)){
case 'int':
$n=str_pad($n,$tam,'12345679890');
$inscod .= "$n,";
break;
case 'real':
$r=str_pad($r,$tam,'1234567890');
$inscod .= "$r,";
break;
case 'string':
$s=str_pad($s,$tam,"abcdefghijklmnopqrstuvxyz");
$inscod .= "$s',";
break;
case 'date':
$inscod .= "'$d',";
break;
case 'datetime':
case 'timestamp':
$inscod .= "'$dt',";
break;
case 'blog':
$inscod .= "'$t'";
break;
default:
$o=str_pad($o,$tam,"abcdefghijklmnopqrstuvxyz");
$inscod .= "'$o',";
break;
}
}else{
switch (mysql_field_type($consulta, $j)){
case 'int':
$n=str_pad($n,$tam,'1234567890');
$inscod .= "$n";
break;
case 'real':
$r=str_pad($r,$tam,'1234567890');
$inscod .= "$r";
break;
case 'string':
$s=str_pad($s,$tam,"abcdefghijklmnopqrstuvxyz");
$inscod .= "$s'";
break;
case 'date':
$inscod .= "'$d'";
break;
case 'datetime':
case 'timestamp':
$inscod .= "'$dt'";
break;
case 'blog':
$inscod .= "'$t'";
break;
default:
$o=str_pad($o,$tam,"abcdefghijklmnopqrstuvxyz");
$inscod .= "'$o'";
break;
}
}
}
$inscod .=");";
for($r=1;$r<=$registros;$r++){
//echo $inscod;
if(!mysql_query($inscod,$conexao)) die ("Erro na inclusão".mysql_error());
}
}
?>