我可以像这样选择数据库中的所有表
原文链接:https://www.f2er.com/php/136498.html$tables = array(); $result = MysqL_query('SHOW TABLES'); while($row = MysqL_fetch_row($result)) { $tables[] = $row[0]; }
foreach($tables as $table) { $result = MysqL_query('SELECT * FROM '.$table); $num_fields = MysqL_num_fields($result); $return.= 'DROP TABLE IF EXISTS '.$table.';'; $row2 = MysqL_fetch_row(MysqL_query('SHOW CREATE TABLE '.$table)); $return.= "\n\n".$row2[1].";\n\n"; for ($i = 0; $i < $num_fields; $i++) { while($row = MysqL_fetch_row($result)) { $return.= 'INSERT INTO '.$table.' VALUES('; for($j=0; $j<$num_fields; $j++) { $row[$j] = addslashes($row[$j]); $row[$j] = ereg_replace("\n","\\n",$row[$j]); if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; } if ($j<($num_fields-1)) { $return.= ','; } } $return.= ");\n"; } } $return.="\n\n\n"; }
我的数据库有两个MysqL视图.上面的代码生成“INSERT INTO ….”字符串,即使是我需要避免的MysqL视图.
所以在开始’for循环’以生成“INSERT INTO ..”值之前,我需要检查$table是否实际上是一个MysqL表或视图.
如何识别名称是指MysqL表还是MysqL视图?