0

这是代码:

<?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 )";
}
?>

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

4

2 回答 2

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);
}

另外,我建议使用mysqliormysql PDO代替旧的,将来会弃用 mysql API。在此处阅读更多相关信息:http: //se2.php.net/manual/en/mysqlinfo.api.choosing.php

于 2012-09-16T17:29:45.583 回答
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 的替代方案),因此在数据库中没有执行任何操作。

于 2012-09-16T17:35:22.707 回答