PHP同时向MySQL数据库写入多行

时间:2014-05-12 11:40:29

标签: php mysql

我有以下代码来编写数据库的条目:

<?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并将每行存储在数据库中会更快吗?如果是,我该如何实现?

1 个答案:

答案 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)