我正在建立一个像电话议程一样工作的小应用程序。我不认为这对互联网用户非常有用,但我只是为了学习一些php和mysql。
现在,我正在检查并改善数据库性能的部分。为此,我想添加~1.000联系人,以便能够测试一些索引并获得相关结果。
我想告诉我这是否可行,你会如何推荐我这样做。
在我的数据库中,我有:id (autoincremented) | email (pk) | name | sex | school
require_once("connection.php");
$sql = "INSERT INTO contacts(id,email, name, sex, school) VALUES ";
for ($i = 0; $i < 1000; $i++) {
$sql .= "('".$id1[$i]."','".$email[$i].","male", "Computer Science"),";
}
rtrim($sql, ',');
$result = mysqli_query($con, $sql);
if ( false===$sql ) {
printf("error: %s\n", mysqli_error($con));
}
我有一个问题!我的电子邮件需要独一无二,因为它是PK。我想要一些像1blablabla @ gmail.com,2blablabla @ gmail.com,3blablabla @ gmail.com。任何想法怎么做?
答案 0 :(得分:3)
首先,我建议使用prepared statements而不是mysqli_query
调用,准备好的语句对于这类工作来说非常棒。
当电子邮件是唯一的时,只需用循环索引连接一个字符串:
$email = $i . "blablabla@gmail.com";
他们将是:
0blablabla@gmail.com
1blablabla@gmail.com
===&GT;
999blablabla@gmail.com
答案 1 :(得分:1)
准备好的陈述会使这很容易
$stmt = $con->prepare("INSERT INTO contacts(email, name, sex, school) VALUES (?, ?, 'male', 'Computer Science')");
$stmt->bind_param('ss', $email, $name);
for ($i = 1; $i <= 1000; $i++) {
$email = "user{$i}@example.com";
$name = "Test Name $i";
$stmt->execute();
}
我还会在id
列上设置主键,并为email
添加唯一约束。
答案 2 :(得分:0)
试
require_once("connection.php");
$sql = "INSERT INTO contacts(id,email, name, sex, school) VALUES ";
for ($i = 0; $i < 1000; $i++) {
$sql .= "('".$id1[$i]."','".$i.$email[$i].","male", "Computer Science"),";
}
rtrim($sql, ',');
$result = mysqli_query($con, $sql);
if ( false===$sql ) {
printf("error: %s\n", mysqli_error($con));
}
答案 3 :(得分:0)
试试这段代码。这将帮助您为每行提供唯一值,因此您可以对此数据执行各种测试而不会产生任何混淆。
我使用了mysqli_
对象类型查询。您可以使用您喜欢的那个。
for ($i = 0; $i < 1000; $i++) {
$email = $db->escape_string('email'.$i.'@example.com');
$name = $db->escape_string('Person Name '.$i);
$gender = array("male","female");
$sex = $db->escape_string($gender[array_rand($gender,1)]);
$school = $db->escape_string('School Name '.$i);
$sql = "INSERT INTO contacts(id, email, name, sex, school) VALUES ('', '$email', '$name', '$sex', '$school')";
if(!$result = $db->query($sql))
{
die('There was an error running the query [' . $db->error . ']');
}
}
答案 4 :(得分:-2)
$email = uniqid();
$sql .= "('".$id1[$i]."','".$email."@gmail.com','male', 'Computer Science'),";