Populate MySQL tables
Remove the primary key before run.
1 2 <?php 3 /** Rotina para popular tabela do MySQL com massa de testes 4 * Colaboração de Ribamar FS - http://ribafs.net - 14/03/2007 5 * Requer remoção da chave primária antes da execução. 6 */ 7 ?> 8 9 <html><head><title>Inserir Registros de Teste</title></head> 10 <body bgcolor=''> 11 <h2 align=center>Cadastrar Tabela do MySQL com Massa de Testes</h2> 12 <h3 align=center><font color=red>Remova chave primáia da tabela, antes de executar</font></h3> 13 <h4 align=center>Observe que nem todos os tipos de dados foram contemplados, alguns ficarão como string</h4> 14 15 <table align=center> 16 <form method='POST' name=frmIns action='popula_table.php'> 17 18 <tr><td>Host</td><td><input type=text name='host' value='127.0.0.1'></td></tr> 19 <tr><td>Banco</td><td><input type=text name='banco' value='cliente'></td></tr> 20 <tr><td>Usuáio</td><td><input type=text name='usuario' value='root'></td></tr> 21 <tr><td>Senha</td><td><input type=text name='senha'></td></tr> 22 <tr><td>Tabela</td><td><input type=text name='tabela' value='clientes'></td></tr> 23 <tr><td>Registros</td><td><input type=text name='registros' value=5></td></tr> 24 <tr><td></td><td><input type=submit name='popular' value='Popular'></td></tr> 25 </form> 26 </table> 27 </body> 28 </html> 29 30 <?php 31 if(isset($_POST['popular'])){ 32 $host=$_POST['host']; 33 $banco=$_POST['banco']; 34 $usuario=$_POST['usuario']; 35 $senha=$_POST['senha']; 36 $tabela=$_POST['tabela']; 37 $registros=$_POST['registros']; 38 $numericos=$_POST['numericos']; 39 40 $conexao=mysql_connect($host,$usuario,$senha); 41 if ($conexao){ 42 $sel=mysql_select_db($banco,$conexao); 43 if(!$sel) die('Erro ao selecionar o banco'.mysql_error()); 44 }else{ 45 die ('Erro ao conectar ao banco '.mysql_error()); 46 } 47 $str="SELECT * FROM $tabela"; 48 $consulta= mysql_query($str,$conexao); 49 $nc=mysql_num_fields($consulta); 50 $nr=mysql_num_rows($consulta); 51 52 $n='';//numericos (int, tinyint, smallint, bigint, etc) 53 $r=''; //reais (float e double) 54 $s="'";//strings 55 $d=date('Y-m-d'); //datas 56 $dt=date('Y-m-d H:i:s');//datatimes 57 $o=''; //outros 58 59 $inscod .="INSERT INTO $tabela ("; 60 for ($j = 0; $j < $nc; $j++) { 61 $campo = mysql_field_name($consulta, $j); 62 if ($j < $nc-1) $inscod .= "$campo,"; 63 else $inscod .= "$campo"; 64 } 65 $inscod .= ")"; 66 $inscod .= " VALUES ("; 67 68 for ($j = 0; $j < $nc; $j++) { 69 $tam = mysql_field_len($consulta, $j); 70 //if(($tam)>20) $tam=20; //Caso queira limitar os campos ao máximo de 20 posições 71 if ($j < $nc-1){ 72 switch (mysql_field_type($consulta, $j)){ 73 case 'int': 74 $n=str_pad($n,$tam,'12345679890'); 75 $inscod .= "$n,"; 76 break; 77 case 'real': 78 $r=str_pad($r,$tam,'1234567890'); 79 $inscod .= "$r,"; 80 break; 81 case 'string': 82 $s=str_pad($s,$tam,"abcdefghijklmnopqrstuvxyz"); 83 $inscod .= "$s',"; 84 break; 85 case 'date': 86 $inscod .= "'$d',"; 87 break; 88 case 'datetime': 89 case 'timestamp': 90 $inscod .= "'$dt',"; 91 break; 92 case 'blog': 93 $inscod .= "'$t'"; 94 break; 95 default: 96 $o=str_pad($o,$tam,"abcdefghijklmnopqrstuvxyz"); 97 $inscod .= "'$o',"; 98 break; 99 } 100 }else{ 101 switch (mysql_field_type($consulta, $j)){ 102 case 'int': 103 $n=str_pad($n,$tam,'1234567890'); 104 $inscod .= "$n"; 105 break; 106 case 'real': 107 $r=str_pad($r,$tam,'1234567890'); 108 $inscod .= "$r"; 109 break; 110 case 'string': 111 $s=str_pad($s,$tam,"abcdefghijklmnopqrstuvxyz"); 112 $inscod .= "$s'"; 113 break; 114 case 'date': 115 $inscod .= "'$d'"; 116 break; 117 case 'datetime': 118 case 'timestamp': 119 $inscod .= "'$dt'"; 120 break; 121 case 'blog': 122 $inscod .= "'$t'"; 123 break; 124 default: 125 $o=str_pad($o,$tam,"abcdefghijklmnopqrstuvxyz"); 126 $inscod .= "'$o'"; 127 break; 128 } 129 } 130 131 } 132 $inscod .=");"; 133 134 for($r=1;$r<=$registros;$r++){ 135 //echo $inscod; 136 if(!mysql_query($inscod,$conexao)) die ("Erro na inclusão".mysql_error()); 137 } 138 } 139 ?> 140