I have an app on my phone that I use as a pocket reference when I need field names, relationships in GroceryCrud. It has an Import from SQL feature.
I ran my code. Copied the output to keep.google.com and from there pasted the SQL in the mobile app.
This was a quick thing I needed so I just placed it in a controller.
Code follows:
public function tableSQLCreate() {
try {
$pdo = $this->db;
}
catch(PDOException $e) {
die("Could not connect to the database\n");
}
echo '<#pre>';
try{
$stmt1 = $pdo->query('SHOW TABLES' );
try {
foreach($stmt1->result() as $result) {
foreach ($result as $key => $value) {
$stmt2 = $pdo->query("SHOW CREATE TABLE `". $value ."`" );
$table = $stmt2->result();
foreach ($table[0] as $key => $value) {
if ($key=="Create Table") {
echo "$value;\n\n";
}
}
}
}
} catch(PDOException $e) {
die("Could not get result nested");
}
}
catch(PDOException $e) {
die("Could not get result");
}
echo '<#/pre>';
}
Be sure to remove the # symbol from the pre tags. It was a dirty way around the Blogger formatter.
It outputs
CREATE TABLE `login_attempts` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`ip_address` varchar(15) NOT NULL,
`login` varchar(100) NOT NULL,
`time` int(11) unsigned DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;