【发布时间】:2014-08-08 11:45:29
【问题描述】:
我想用这样的字段创建一个动态表。
table_name: book_list
book1(int(2)) book2(int(2)).... book44(int(2)
我有一个这样的 php 代码。
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
for($i=1;$i<=44;$i++){
$sql = 'CREATE TABLE IF NOT EXISTS `book_list` (
book_'.$i. 'int(2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1';
mysql_select_db('book_db');
$retval = mysql_query( $sql, $conn );
}
?>
上面的代码需要做一些调整,这是为了生成动态表。
任何帮助都会更有意义。
谢谢, 金兹
PS:我知道 MYSQL 正在贬值,但这仍然适用于我的客户,他只想要 mysql 而不是 pdo 或 mysqli。看起来很疯狂。但是还是
【问题讨论】:
-
创建表后,您需要更改查询以添加更多列。
-
是的,怎么样?我不喜欢 php 和循环。你能帮忙看看上面的代码吗?
-
您要新建表还是在现有表中添加列?
-
添加列.. 我的 for 循环真的很糟糕。但仍然..
-
Please, don't use
mysql_*functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解 prepared statements,并使用 PDO 或 MySQLi - this article 将帮助您决定哪个。
标签: php mysql for-loop while-loop