从循环创建几个MySQL表?

时间:2012-09-16 17:28:34

标签: php mysql

这是代码:

<?php
$months= array("january", "november", "december");
$db_server = include('root.php');
if (!$db_server) die("Unable to connect to MySQL: " . mysql_error());
mysql_select_db('info');
for ($i=0; $i < $months; $i++){
    $query1 = "CREATE TABLE {$months[$i]} (
    StIDf CHAR(10) NOT NULL, FulNam TEXT NOT NULL, ComNam TEXT NOT NULL,Add TEXT ,Tel TEXT )";
}
?>

但它不起作用。我需要从一个循环创建几个表。有可能吗?

2 个答案:

答案 0 :(得分:1)

您永远不会执行实际查询,请将此行添加到for循环中:

mysql_query($query1);

此外,您应该使用count($month)来查找它包含的项目数。

for ($i = 0; $i < count($months); $i++) {
    $query1 = "CREATE TABLE {$months[$i]}  (
    StIDf CHAR(10) NOT NULL,FulNam TEXT NOT NULL, ComNam TEXT NOT NULL,Add TEXT ,Tel TEXT )";
    mysql_query($query1);
}

另外,我建议使用mysqlimysql PDO而不是旧的,将来会被弃用的mysql API。在此处详细了解:http://se2.php.net/manual/en/mysqlinfo.api.choosing.php

答案 1 :(得分:1)

试试这个:

<?php
$months    = array("january","november","december");
$db_server = include('root.php');

if (!$db_server) die("Unable to connect to MySQL: " . mysql_error());

mysql_select_db('info');

foreach($months as $month) {
    $query1 = "CREATE TABLE {$month}  ( "
            . "StIDf CHAR(10) NOT NULL, "
            . "FulNam TEXT NOT NULL, "
            . "ComNam TEXT NOT NULL, "
            . "Add TEXT, "
            . "Tel TEXT "
            . ")";
    $result = mysql_query($query1);
}
?>

您的代码没有执行mysql_query(或mysqli或PDO的备选方案),因此数据库中没有执行任何操作。