php - 将多个条目插入一列

标签 php mysql sql

是否可以将多个条目添加到一列中,而将单个条目添加到其他列中?

例如

$sql="INSERT INTO The_table (firstname, lastname, address) VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[address]'";

然后我有多个复选框条目需要插入 - 年龄、衬衫尺码、高度在一个名为 about 的列中。

我将如何编写 $sql 语句?

最佳答案

您可以非常轻松地在 PHP 中连接一个字符串,然后将其放入 SQL 插入查询中。

$about = "AGE: $_POST[age]\nSHIRT SIZE: $_POST[shirt_size]\nHEIGHT: $_POST[height]";
$sql = "INSERT INTO The_table (firstname, lastname, address, about) VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[address]', '$about')";

当然你应该准备你的声明并使用适当的绑定(bind)值来代替:

$sql = "INSERT INTO The_table (firstname, lastname, address, about) VALUES (?, ?, ?, ?)";
// now prepare, bind and execute

如果您不执行准备/绑定(bind)操作,那么您就是在寻求安全方面的问题。至少您需要对用户提供的数据应用适当的转义机制。

http://php.net/manual/en/mysqli-stmt.execute.php 复制示例并为您修改它:

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Prepare an insert statement */
$query = "INSERT INTO The_table (firstname, lastname, address, about) VALUES (?,?,?,?)";
$stmt = $mysqli->prepare($query);

$stmt->bind_param("ssss", $_POST['first'], $_POST['last'], $_POST['address'], $about);

/* here's where you do your special assignments */
$about = "AGE: $_POST[age]\nSHIRT SIZE: $_POST[shirt_size]\nHEIGHT: $_POST[height]";    

/* Execute the statement */
$stmt->execute();

/* close statement */
$stmt->close();

关于php - 将多个条目插入一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29185242/

相关文章:

php - 在本地主机上保护基于 php/mysql 的应用程序

php - 在 codeigniter global 中关闭表单自动完成

python - 我怎样才能在sql查询中转义这个字符串?

sql - INNER JOIN 中的多个条件

java - SQLSyntaxErrorException : ORA-00979: not a GROUP BY expression

php - 使用嵌入在 Windows 7 上的 MySQLi 编译 PHP

php - mysql_real_escape_string 不适合我

php - MySQL 进程列表 - 锁定问题

mysql - 如何在mysql中左连接多个一对多的表?

sql - 如何在SQL Server中更好地复制一组数据