gpt4 book ai didi

php - 将数据插入数据库的正确方法是什么?

转载 作者:行者123 更新时间:2023-11-29 09:23:45 24 4
gpt4 key购买 nike

在 php 中,我尝试使用 INSERT 查询插入数组。我收到错误:

检查数据库连接列计数与第 1 行的值计数不匹配。

我是执行此类插入的新手,也是使用内爆的新手。请帮助提供某种类型的解决方案。我的表格列是

IaasForm_id (PK), From_id(FK), roleApp, os, vCPU, Memory, val, Performance, HighWrite, fwconfig, transIn, transOut, bkUp

和sql

$sql = "INSERT INTO FORM(From_id, roleApp, os, vCPU, Memory, val, 
Performance, HighWrite, fwconfig, transIn, transOut, bkUp)
VALUES ((SELECT MAX(Form_id) FROM FORM ), '" . implode("','", $array[$i]) . "','" . $hw . "','" . $_POST[ 'fwconfig' ] . "','" . $_POST[ 'transIn' ] . "','" . $_POST[ 'transOut' ] . "','" . $_POST[ 'bkUp' ] . "')";

最佳答案

您不应该以这种方式将数据插入数据库。这是一种非常古老的插入数据方式。现在有一种优雅的方法可以非常有效地执行 sql 作业。最佳实践总是得到所有人的认可并得到广泛应用。

查看一个非常简单的示例,您应该如何执行此操作:

<?php

$host = "localhost";
$username = "your_db_username";
$password = "your_db_password";
$dbname = "your_db_name";

try {
$conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);

// Sets the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// Prepares sql with PDO's PDO::prepare() method
$sql = "INSERT INTO FORM(From_id, roleApp, os, vCPU, Memory, val, Performance, HighWrite, fwconfig, transIn, transOut, bkUp)
VALUES ((SELECT MAX(Form_id) FROM FORM), :roleApp, :os, :vCPU, :Memory, :val, :Performance, :HighWrite, :fwconfig, :transIn, :transOut, :bkUp)";
$stmt = $conn->prepare($sql);

// Prepares data
$data = [
':roleApp' => 'value',
':os' => 'value',
':vCPU' => 'value',
':Memory' => 'value',
':val' => 'value',
':Performance' => 'value',
':HighWrite' => 'value',
':fwconfig' => 'value',
':transIn' => 'value',
':transOut' => 'value',
':bkUp' => 'value',
];

// Inserts row into table
$stmt->execute($data);

} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
$conn = null;

希望这能帮助您理解。快乐编码!

关于php - 将数据插入数据库的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59978327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com