使用php将多个插入到mysql中

使用php将多个插入到mysql中,php,mysql,loops,multiple-insert,Php,Mysql,Loops,Multiple Insert,我有一个脚本,当有人输入他们的电子邮件时,它会插入公司id、用户id和交易的日期时间。现在我必须添加一个下拉选择框,允许用户选择他们想要捐款的数量,这样用户只需输入他们的电子邮件地址一次。最好的办法是什么?我是这样想的: $coid = $row['companyid']; $userid = $_SESSION['userid']; $selectbox = $_POST['select']; // number value 1-10 // old query mysql_query = (

我有一个脚本,当有人输入他们的电子邮件时,它会插入公司id、用户id和交易的日期时间。现在我必须添加一个下拉选择框,允许用户选择他们想要捐款的数量,这样用户只需输入他们的电子邮件地址一次。最好的办法是什么?我是这样想的:

$coid = $row['companyid'];
$userid = $_SESSION['userid'];
$selectbox = $_POST['select']; // number value 1-10

// old query
mysql_query = ("INSERT INTO donations(company, user)");

// new query
$i=1
while($i<=$selectbox) {
mysql_query = ("INSERT INTO donations(company, user)");
$i++
}
$coid=$row['companyid'];
$userid=$\会话['userid'];
$selectbox=$_POST['select'];//数值1-10
//老问题
mysql_query=(“插入捐赠(公司、用户)”);
//新查询
$i=1

在($i之前,停止使用
mysql\uu
函数,改用
mysqli\u
PDO
函数

您应该使用准备好的语句或清理变量以防止SQL注入

关于更好的方法,您可以将它们放入数组中,然后在执行时内爆。这是一个很好的起点。它使用PDO插入数组

根据您当前的代码,我不清楚您是如何跟踪希望捐款的用户数量的,但您可以这样做:

$i = 1;
while($i <= $selectbox) {
$insertArray[] = "$coid, $userid";
$i++;
}

mysql_query("INSERT INTO donations (company, user) VALUES (" . implode('), (', $insertArray) . ")");
$i=1;

而($i您应该创建一个包含3列的数据库表(对于这个问题)

我将为您提供生成所需表的代码,只需将其复制并粘贴到PHPmyAdmin中:

Create Table donations(
company_id int,
user_id int,
donate_num int,
datetime DATETIME
)
然后使用
INSERT-INTO
函数使用新的mysqli函数更新数据库(用数据库详细信息替换服务器/用户名等):


您的查询中缺少了一些内容+请使用PDO或mysqli而不是mysql+转义您的用户数据!在这种情况下,PDO准备的语句将非常有效。谢谢,我将转到PDO,我的所有用户数据都转义到我的家用计算机上……我只是从内存中编写此内容,不想编写所有额外的转义部分=lazyThanks的代码…这肯定会起作用,但我需要跟踪每个捐赠,所以每次捐赠都需要单独的插入。谢谢你的回复。我所有的用户数据都被转义了…我只是太懒了,没有把它们全部写出来,但我会转向PDO。另外,你能告诉我放入数组更好吗?只是好奇而已。@robk27因为您可以在数组中循环并更轻松地执行任何字符串函数。
$mysqli= new mysqli('SERVER','USERNAME','PASSWORD','DATABASE NAME')
if ($mysqli->connect_error) {
            die('Connect Error (' . $mysqli->connect_errno . ') '
                    . $mysqli->connect_error);
        }

function escapeStringSlash($value) {

            global $mysqli;
           if (get_magic_quotes_gpc()) {
               $value = stripslashes($value);
           }

           if (!is_numeric($value)) {
               $value = $mysqli->real_escape_string($value);
           }
           return $value;
        }

$coid=escapeStringSlash($row['companyid']);
$userid = escapeStringSlash($_SESSION['userid']);
$selectbox = escapeStringSlash($_POST['select']);
$date = new DateTime();
$currentTime = $date->format("Y-m-d H:i:s");


if($insertDonations=$mysqli->query("INSERT INTO donations(company_id,user_id,donate_num,datetime) VALUES(".$coid.",".$userid.",".$selectbox.",'".$currentTime."')"){
echo "Number of donations received";
}else{
echo "There was a problem inserting this.";
}
$mysqli->close();