Php 如何从数组自动创建数据库表
我今天很沮丧,想让它工作 我有大约20个表,若它们不存在,那个么需要在php脚本开始时创建它们 最明显的方法是SQL查询CREATE IF NOT EXIST,但是我不想查询数据库20次,只是为了检查它们是否存在,只在我想创建它们的时候 我尝试过在我的表数组中循环,然后使用ShowAll FROM database,然后比较表名,但是这不起作用(我不知道为什么)Php 如何从数组自动创建数据库表,php,mysql,database,Php,Mysql,Database,我今天很沮丧,想让它工作 我有大约20个表,若它们不存在,那个么需要在php脚本开始时创建它们 最明显的方法是SQL查询CREATE IF NOT EXIST,但是我不想查询数据库20次,只是为了检查它们是否存在,只在我想创建它们的时候 我尝试过在我的表数组中循环,然后使用ShowAll FROM database,然后比较表名,但是这不起作用(我不知道为什么) $result=$db->query(“显示数据库中的表”); $numrows=mysql\u num\u行($result); e
$result=$db->query(“显示数据库中的表”);
$numrows=mysql\u num\u行($result);
echo$numrows.“表”;
$found=null;
foreach($name=>$fields形式的表){
而($showall=mysql\u fetch\u数组($result)){
如果($name==$showall[0]){
未结算(已发现);
}
}
如果(isset($found)){
回显“表”。$name.。不存在,正在创建…
;
$db->query(“创建表“$name.”(“$fields”)”);
}否则{
回显“表”。$name。“存在
”;
//$db->query(“创建表“$name.”(“$fields”)”);
}
到目前为止,这就是我的代码(我想,经过数小时的努力,我的代码是第4版)。如您所见,我在循环中循环,并在找到匹配项时取消设置变量。这听起来很简单,应该可以工作,但实际上不行。您只声明了$found变量两次,两次都声明为null。因此,您的代码永远不会输入
if (isset($found)) {
echo 'Table '.$name.' does not exist, creating...<br />';
$db->query("CREATE TABLE ".$name." (".$fields.")");
}
if(isset($found)){
回显“表”。$name.。不存在,正在创建…
;
$db->query(“创建表“$name.”(“$fields”)”);
}
可能有问题?是的。但我尝试过将变量设置为1并询问该变量是否已设置。我发布的这个$found示例是第四次尝试的三分之一。
if (isset($found)) {
echo 'Table '.$name.' does not exist, creating...<br />';
$db->query("CREATE TABLE ".$name." (".$fields.")");
}