我有以下代码来编写数据库的条目:
<?php
$database = 'abc';
$dbhost = 'abc.com';
$dbuser = 'abc';
$dbpass = 'abc';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
$key = 'abc';
$checkKey = $_GET['key'];
if ($key === $checkKey) {
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
$a = mysql_real_escape_string($_GET['a']);
$b = mysql_real_escape_string($_GET['b']);
$c = mysql_real_escape_string($_GET['c']);
$c = $c / 1000;
$d = mysql_real_escape_string($_GET['d']);
$sql = 'INSERT INTO x '.
'(a,b, c, d) '.
'VALUES (' .$a. ',' .$b. ',FROM_UNIXTIME(' .$c. '),' .$d. ')';
mysql_select_db($database);
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Could not enter data: ' . mysql_error() . ': ' . $sql);
}
echo "Entered data successfully\n";
mysql_close($conn);
} else {
die('Key not valid!');
}
?>
这很好但是它很慢,因为对于我要添加的每一行,我必须调用一次脚本。例如,收集1000行然后使用这1000行调用URL并将每行存储在数据库中会更快吗?如果是,我该如何实现?
答案 0 :(得分:0)
您可以使用以下格式使用单个insert语句插入多行:
INSERT INTO table (column1, column2) VALUES
(value1, value2), (value1, value2), (value1, value2)
您可以使用html帖子发送多行,如下所示:
<input type="text" name="field1[1]" />
<input type="text" name="field2[1]" />
<input type="text" name="field1[2]" />
<input type="text" name="field2[2]" />
<input type="text" name="field1[3]" />
<input type="text" name="field2[3]" />
在这种情况下, $_POST['field1']
和$_POST['field2']
每个都是一个包含3个值的数组。
请注意,单个请求中可以发送的字段数量有限(我认为是1000)