Hi Leute,
ich programmiere eigentlich Java und bin nun in ein PHP Projekt gedrängt worden, habe aber Zeit bekommen mich vorher erst etwas mit PHP zu beschäftigten. Und so will ich ein Command Line Script schreiben das automatisch alle Tabellen einer Datenbank ausliest, nachschaut ob Indexe vorhanden sind und diese dann nacheinander entfernt.
Wer sich fragt warum das Sinn machen könnten: Ich hab hier ne DB mit vielen Tabellen und vielen Indexen. UND es ist geplant Infobright zu testen, welches keine Indexe auf den Tabellen erlaubt. Ich könnte natürlich alle manuell entfernen dachte mir aber das es eine schöne Übung wäre ein Script dafür zu schreiben.
Mein Problem liegt aber darin das ich einen vorhandene mysqli() Referenz ein 2. Mal, dieses mal innerhalb einer foreach Schleife verwenden will, das query aber irgendwie nicht funktioniert.
Leider habe ich keinen Plan warum.
Hier ist der bisherige Code:
Das var_dump($res) gibt leider immer 0 aus und ich weiss nicht so recht warum. Muss ich da prepare benutzen?
Bin für jede Hilfe dankbar.
ich programmiere eigentlich Java und bin nun in ein PHP Projekt gedrängt worden, habe aber Zeit bekommen mich vorher erst etwas mit PHP zu beschäftigten. Und so will ich ein Command Line Script schreiben das automatisch alle Tabellen einer Datenbank ausliest, nachschaut ob Indexe vorhanden sind und diese dann nacheinander entfernt.
Wer sich fragt warum das Sinn machen könnten: Ich hab hier ne DB mit vielen Tabellen und vielen Indexen. UND es ist geplant Infobright zu testen, welches keine Indexe auf den Tabellen erlaubt. Ich könnte natürlich alle manuell entfernen dachte mir aber das es eine schöne Übung wäre ein Script dafür zu schreiben.
Mein Problem liegt aber darin das ich einen vorhandene mysqli() Referenz ein 2. Mal, dieses mal innerhalb einer foreach Schleife verwenden will, das query aber irgendwie nicht funktioniert.
Leider habe ich keinen Plan warum.
Hier ist der bisherige Code:
PHP-Code:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
$db = new mysqli("localhost", "user", "passwort", "datenbank");
$result = $db->query("show tables");
//echo "Einträge: ".$result->num_rows."\n";
$tables = array($result->num_rows);
echo "Enthaltene Tabellen: ".array_sum($tables)."\n";
while ($row = $result->fetch_row()){
array_push($tables, $row[0]);
}
foreach ($tables as $tab){
$res = $db->query("show index from ".$tab);
var_dump($res);
}
?>
Bin für jede Hilfe dankbar.
Kommentar