0
今日は非常に挫折してこの作業をしようとしています。アレイからdbテーブルを自動作成する方法
my phpスクリプトの先頭付近に作成する必要があるテーブルが20個あります(存在しない場合)。
明白な方法は、SQLクエリCREATE IF NOT EXISTですが、データベースを作成するときだけ、データベースが存在するかどうかを確認するために20回クエリを実行する必要はありません。
私はテーブル配列をループしてから、すべてのデータベースからSHOW ALL FROMデータベースを使ってテーブル名を比較しようとしましたが、うまくいきませんでした。これまでの私のコードです
$result=$db->query("SHOW TABLES FROM database");
$numrows=mysql_num_rows($result);
echo $numrows.' tables';
$found=null;
foreach ($table as $name => $fields) {
while ($showall=mysql_fetch_array($result)) {
if ($name==$showall[0]) {
unset($found);
}
}
if (isset($found)) {
echo 'Table '.$name.' does not exist, creating...<br />';
$db->query("CREATE TABLE ".$name." (".$fields.")");
} else {
echo 'Table '.$name.' exists<br />';
//$db->query("CREATE TABLE ".$name." (".$fields.")");
}
(バージョン4、私はそれが動作するように取得しようとする時間後、数えます)。ご覧のとおり、ループ内でループし、一致するものが見つかると変数の設定を解除します。シンプルに聞こえますが、それはうまくいくはずですが、そうではありません。
真。しかし、変数を1に設定し、その変数が設定されているかどうかを尋ねてみました。私が投稿したこの$見つかった例は、それを動作させるための4番目の試みの3分の1でした。 – Jared