用户创建php,mysql使用for循环和插入查询

时间:2014-03-08 03:32:43

标签: php mysql sql

我需要用n个用户名和密码创建n个用户。

如果我提供输入5abc。 5应使用abc1abc2abc3abc4abc5等用户名和密码创建用户。

如何通过提供mysql插入查询在for循环中执行此操作?

以下是我的表格

create.php

Create User : 
<br><br>
<form action="add_res.php" method="post">
Count :  <input type = "text" name="count"><br>
Name :  <input type = "text" name="val">
<input type = "submit">
</form>

和add_res.php

<?php
$count=$_POST['count']; 
$val=$_POST['val'];     
include ('config.php');
echo "<b>".$count." Users Created"."</b>"."<br>";
echo "<u>"."The Users' List is given below"."</u>";
for ($i=1; $i <=$count; $i++) 
{ 
$select=mysql_query("insert into student (username, password) VALUES
('$con', '$con')");
}  
?>

我不知道实现正确的for循环和正确的插入查询。我怎样才能实现它?

4 个答案:

答案 0 :(得分:1)

使用for循环和以下格式的插入查询

<?php
$count=$_POST['count']; 
$val=$_POST['val']; 

include ('config.php');
echo "<b>".$count." Users Created"."</b>"."<br>";
echo "<u>"."The Users' List is given below"."</u>";
for ($i=1; $i <=$count; $i++) 
{ 

    echo "<br>";
    echo $val.$i;
$con=$val.$i;
$select=mysql_query("insert into student (username, password) VALUES
('$con', '$con')");

}


?>

答案 1 :(得分:1)

此处的其他几个答案已经说明了如何正确设置要与MySQL查询一起发送的变量,但是每个变量以及原始代码都包含一个经典的SQL injection漏洞!特别是因为您直接从$_POST获取输入,这将允许攻击者完全控制您的数据库 - 读取数据,重置密码,等等。

解决问题的一种方法是将输入转义为mysql_query。解决原始问题和安全问题的版本可能如下所示:

<?php
include ('config.php');

$count = $_POST['count']; 
$val = $_POST['val'];     

echo "<b>".$count." Users Created</b><br>";
echo "<u>The Users' List is given below</u>";

echo "<ul>";
for ($i = 1; $i <= $count; $i++) 
{
  echo "<li>";
  $name = $val . $i;
  $name = mysql_real_escape_string($name);
  mysql_query("insert into student (username, password) VALUES ('$name', '$name')");
}
echo "</ul>";

但是,这仍然使用mysql_query,虽然mysql_real_escape_string解决了上述安全问题,但它不是编写MySQL查询的首选方法。我相信PDO是现在推荐的方式。

答案 2 :(得分:0)

只需使用$ val变量创建一个变量,然后将$ i变量放在最后。然后插入。

for ($i=1; $i <=$count; $i++) 
{ 
$con = $val.$i;
$select=mysql_query("insert into student (username, password) VALUES ('$con', '$con')");
}   

答案 3 :(得分:0)

替换此而不是循环

for ($i=1; $i <=$count; $i++) 
{ 
    echo "<br>";
    echo $val.$i;
    $con=$val.$i;
    $select=mysql_query("insert into student (username, password) VALUES ('".$con."', '".$con."')");
}