php - 即时编写 $_POST 变量脚本

标签 php mysql string

我有一个注册表单,允许用户注册任意数量的人。例如,我无法提前知道是 1 人注册还是 500 人注册。所以在服务器端,如果我有 3 个人同时注册,我需要通过 $_POST['first0'] $_POST['first1']< 访问一个人的所有名字$_POST['first2']。所以这是我的数据库查询。

    for ($i=0; $i < runners; $i++) {
        $query = "INSERT INTO ".$usertable." VALUES (".$_POST['first'.$i].", ".$_POST['last'.$i].", ".$_POST['age'.$i].",
        ".$_POST['gender'.$i].", ".$_POST['email'.$i]." , ".$_POST['phone'.$i]." , ".$_POST['address'.$i]." ,
        ".$_POST['city'.$i]." , ".$_POST['state'.$i]." , ".$_POST['zip'.$i]." , ".$_POST['type'.$i]." , ".$_POST['tshirt'.$i].")";

我的查询不工作,所以我知道我的引号和撇号不正确谁能告诉我正确的方法来完成这个。感谢您的帮助!

最佳答案

首先,如果您的表单条目使用数组语法,发布的数据会更容易处理,即:

<label>First: <input name="first[]" value="" /></label>
<label>Last: <input name="last[]" value="" /></label>
<label>Age: <input name="age[]" value="" /></label>
<label>Gender: 
    <input type="radio" name="gender[]" value="m" />Male
    <input type="radio" name="gender[]" value="f" />Female
</label>

然后,在您的代码中,像 $_POST['first'] 这样的值是一个值数组。

其次,您应该查看准备好的语句。观察:

$stmt = $db->prepare('INSERT INTO mytable (first, last, age, gender) VALUES (?, ?, ?, ?)');

foreach ($_POST['first'] as $index => $value) {
    $stmt->execute(array(
        $value,
        $_POST['last'][$index],
        $_POST['age'][$index],
        $_POST['gender'][$index],
    ));
}

关于php - 即时编写 $_POST 变量脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18972704/

相关文章:

php - 我应该在客户端和服务器上都使用 MVC 吗?

mysql - 在 MySQL 中将新行插入表(触发问题)时有选择地更新旧行

c# - Nunit MySQL 错误

php - 通过 PHP 访问列中的数据

c - 函数中的 fgets 获取变量的段错误,但不获取硬编码字符串的段错误

javascript - 根据隐藏文本框检查最小最大数

php - 如何在 laravel spark 中创建本地发票?

php - mysqli::get_result 有什么问题?

c++ - int 和 string 之间的隐式类型转换

java - 我怎样才能剪断这根绳子?