【问题标题】:How to insert multiple values into a table in php [closed]如何在php中将多个值插入表中[关闭]
【发布时间】:2013-11-27 14:39:06
【问题描述】:

我已经学会并被教导如何将单个值插入到表中的列中,但我无法将多个值插入到同一个表中的多个列中

我希望能够添加 id、名字、名字和电子邮件,有人可以帮忙吗?请。

我有一个连接数据库的 php 文件以及插入数据库的函数。

db.php

<?php

function getSQLConnection() {
$mysqlConnection = new PDO('mysql:host=localhost;dbname=isad235_100000', "root", "");


return $mysqlConnection;
}

function insertSingleValue($tableName, $columnName, $value) {
$sql = 'INSERT into ' . $tableName . '(' . $columnName . ') VALUES(:Value)';

$mySqlConnection = getSQLConnection();
$sqlStatement = $mySqlConnection->prepare($sql);
$sqlStatement->bindValue(":Value", $value, PDO::PARAM_STR);

$bReturn = false;
try {
    $sqlStatement->execute();
    //if we get to here it's all worked.
    $bReturn = true;
} catch (PDOException $e) {
    echo $e->getMessage();
}
return $bReturn;
}

function getResults($tablename) {
$sql = "SELECT * FROM " . $tablename;

$mysqlConnection = getSQLConnection();

$ResultSet = $mysqlConnection->query($sql);
return $ResultSet;
}

  ?>

以及获取数据并调用函数插入的网页文件。

index.php

<?php
include_once 'db.php';

if (isset($_POST['first_name'])) {
$success = insertSingleValue("members", "first_name", $_POST['first_name']);
if (!$success)
    echo 'Sorry, the insert failed';
}
$Results = getResults("members");
?>

 <!DOCTYPE html>
<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title></title>
</head>
<body>

    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

        <label id="lblName" for="first_name">First Name</label>

        <input type="text" name="first_name" />

        <input type="submit" name="submit" value="Submit" />
    </form>
    <table border="1">
        <tr><th>Name</th>
        </tr>

<?php
if (isset($Results)) {
foreach ($Results as $row) {
    echo '<tr><td>';
    echo $row['first_name'];
    echo '</td></tr>';
    }
}
?>

    </tr>
</table>
</body>
</html>

【问题讨论】:

  • @SpYk3HH: w3fools
  • @MarcB 我知道,但这对于初学者来说仍然不是一个坏地方。不管他们怎么说,编码信息并没有错。只是不要相信那里的证书,因为 W3 不涉及高级机制或编程风格

标签: php mysql sql


【解决方案1】:

语法是

INSERT INTO table( col1, col2, col3, ..., coln ) VALUES( val1, val2, ..., valn)

插入一条记录。例如,使用

$sql = 'INSERT INTO ' . $tableName . '( firstname, lastname, salary ) VALUES( :FirstName, :LastName, :Salary )';

作为SQL然后bindValue三个参数的值:

$mySqlConnection = getSQLConnection();
$sqlStatement = $mySqlConnection->prepare($sql);
$sqlStatement->bindValue(":FirstName", $firstname, PDO::PARAM_STR);
$sqlStatement->bindValue(":LastName", $lastname, PDO::PARAM_STR);
$sqlStatement->bindValue(":Salary", $salary, PDO::PARAM_STR);

$bReturn = false;

我将让您自己在函数中获取正确的数据(例如,您可以将数组作为单个参数传入,而不是单个 $column$value,例如 array( "firstName" =&gt; "Compu", "lastName" =&gt; "Chip", "salary" =&gt; 65000),并使用它构造动态 SQL 语句。

【讨论】:

  • 这是进入函数还是 isset 位?
  • 我有点理解,但你不能编辑我的代码中的位来告诉我你的意思吗??
  • 他发布的代码必须进入您的$sql 变量。基本上,如果您执行echo $sql 并打印他发布的第二个查询,则应该没问题。之后,您必须将 3 个参数传递给您在执行查询时使用的 bindValue() 函数。
  • @BobMarks Naryl 所说的 - 我已经稍微更新了这个例子来帮助你,但我不会完全用勺子喂它,所以我会留给你来概括你想要的。
  • 非常感谢! :) 这些都会通过参数发送吗?我猜是这样,但我只是要求澄清
【解决方案2】:

你的意思是多行吗?如果是这样,这个问题已经在:

insert multiple rows via a php array into mysql

Inserting multiple rows in a table using PHP

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-09
    相关资源
    最近更新 更多