Php 如何创建具有特定行数的MySQL表?
我想用PHP创建一个MySQL表。它应该有精确的12行和4列。第一列将是Php 如何创建具有特定行数的MySQL表?,php,mysql,pdo,Php,Mysql,Pdo,我想用PHP创建一个MySQL表。它应该有精确的12行和4列。第一列将是id 我正在使用此代码创建表: $sql = "CREATE TABLE `$table` ( id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30), pin INT(11), country VARCHAR(30) )"; try { $db->exec($sql);
id
我正在使用此代码创建表:
$sql = "CREATE TABLE `$table` (
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30),
pin INT(11),
country VARCHAR(30)
)";
try {
$db->exec($sql);
echo 'Table created!';
} catch(PDOException $e) {
echo $e->getMessage();
}
上面的代码成功地创建了表,但我想要的是,它应该创建12行,并将id
列填充到12行。其余列应为空。请尝试此编码
$sql = "CREATE TABLE `$table` (
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30),
pin INT(11),
country VARCHAR(30)
)";
mysql_query($sql);
for($i=1;$i<=12;$i++) {
$insert = "INSERT INTO `$table` (id,name,pin,country) VALUES ($i,'','','') ";
mysql_query($insert);
}
$sql=“创建表”$TABLE”(
id INT(11)无符号自动递增主键,
姓名:VARCHAR(30),
内部引脚(11),
乡村瓦查尔(30)
)";
mysql_查询($sql);
对于($i=1;$i您的代码只创建了包含4列的空表。然后您需要向该表插入一些数据:
$sql = 'INSERT INTO {$table} (name, pin, country) VALUES ';
$inserts = [];
for ($i = 0; $i < 12; $i++) {
$inserts[] = "('', 0, '')"; // Or any other values. No ID, because it's auto-incremented
}
$db->exec($sql.implode(', ', $inserts));
$sql='INSERT INTO{$table}(名称、pin、国家/地区)值';
$inserts=[];
对于($i=0;$i<12;$i++){
$inserts[]=“('',0',)”;//或任何其他值。没有ID,因为它是自动递增的
}
$db->exec($sql.infrade(',',$inserts));
你必须在表中插入12行。你不能用12行创建它。我认为这不能用MySql完成。如果表的行数超过12行,你可以通过编程检查每一次插入,如果超过12行,则什么也不做。你也可以在MySql中创建触发器(不确定MySql是否有触发器psql有触发器)所以每次插入之前的触发器计数行不使用mysql\u*
函数,查询也可以优化为只插入一次为什么?有什么特殊原因吗?mysql\u*
不推荐,每次迭代插入都非常慢。@aruncbe83不要使用mysql\u*
,应该使用mysqli
或PDO
>最好使用一个准备好的语句并多次执行。@Daniels118我不这样认为,因为您不添加变量,只添加空条目。如果您只能执行一次insert,为什么还要执行多次呢?因为对于更多的insert,串接字符串可能会很重,而且sql解析器必须解释多个insertle重复同一个查询,这是一个无用的开销。我对您的解决方案进行了升级,因为情况并非如此,我的评论是针对更一般的情况。