【发布时间】:2014-06-29 18:10:22
【问题描述】:
我有以下代码将条目写入数据库:
<?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 并将每一行存储在数据库中会不会相当快?如果是,我该如何实现?
【问题讨论】:
-
您可能知道使用
MySQL插入多行是很容易的(一旦您有了数据,请参阅electrictoolbox.com/mysql-insert-multiple-records)。所以我猜你的问题是send和read多行到你的脚本? -
@sanketh 实际上 OP 需要发送和接收一组元素。所以这不仅仅是
MySQL的问题,恕我直言。 -
@AntonioRagagnin 没错!
-
另外,考虑使用
POST而不是GET。因为您不能在GET网址中发送太多数据(我认为您不能在GET中发送 1000 个元素,但您可以在POST中发送)。 -
以逗号分隔格式(或您想要的任何格式)发送所有参数,然后解析字符串,构造查询并运行它。