如果我們想往數據庫表中插入一行記錄,可以使用以下SQL語句:
1
INSERT INTO tbl_name (col1,col2) VALUES (15,16);
那如果我們想插入多行記錄呢?可能你會想到多次運行INSERT語句即可,就像下面的php代碼示例:
1
2
3
4
5
6
7
8
9
$a = 1;
$b = 1;
while (5 == $a)
{
$sql = "INSERT INTO tbl_name (col1,col2) VALUES ($a,$b)";
mysql_query($sql);
$a++;
$b++;
}
噢,這樣寫代碼效率是很低的,弄不好會嚴重占用計算機資源,如果是while (5000 == $a),那就要執行5000次數據庫查詢,哇塞!好家伙!如果你使用php搭建網站,並且使用的是共享虛擬主機,你給來這麼一手,估計你的網站很快就會掛掉了。這可夠受罪的咯,那怎樣寫才能提高效率呢?不知道你有沒有使用過MySQL的可視化管理工具phpMyAdmin或者其他的數據庫管理軟件,備份數據庫的時候會生成一個.sql文件,裡面就是一大堆sql語句,仔細研究一下,它使用的INSERT語句是這樣的:
1
2
3
4
INSERT INTO `userTable` (`user_id`, `user_name`) VALUES
(1, 'dsf'),
(2, 'fgy'),
(3, 'faad');
這樣只需執行一次SQL查詢,即可插入多行記錄,大大提高了效率,使用php編程的時候,可以使用字符串連接的方式連接sql語句即可:
1
2
3
4
5
6
7
8
9
10
11
12
$a = 1;
while (5 == $a)
{
if (1 == $a)
$sql = "INSERT INTO tbl_name (col1,col2) VALUES ($a,$b)";
else
$sql .= ",($a,$b)";
$a++;
$b++;
}
mysql_query($sql);