php - 在 PHP 中根据 POST 数据构建动态查询

标签 php

我的数据库中有大型表,我尝试动态构建查询,而不是指定每个列名称。

我正在尝试根据收到的 POST 数据在“主板”表中进行更新。我收到的 $data 对象的字段比表的字段多。 (我为一些标志添加了一些字段。) 因此,我正在检索要更新的记录,并通过将其每一列与我的 $data 对象字段进行比较,构建 UPDATE 查询。

我是 php 新手,因此不太了解语法。

这是代码:

<?php
$data = json_decode($_POST["data"], true);
$id = $data["ID"];

include_once 'dbconnect.php';
$query = sprintf("SELECT * FROM `motherboard` WHERE ID = " . $id . ";");
$result = mysqli_query($con, $query);
$existingData = mysqli_fetch_assoc($result);
include_once 'dbclose.php';



$statement = "";
$statement = "UPDATE motherboard SET ";
$flag = false;
foreach ($existingData as $key => $value) {
    if ($existingData->$key != $data->$key) {
        $statement .= $key . " = " . $data->$key . " , ";
        $flag = true;
    }
}
if ($flag)
    $statement = substr($statement, 0, strrchr($statement, ',') - 1);

$statement .= " WHERE ID = " . $id . ";";

echo $statement;
?>

我的主要问题是在 foreach 循环中。我不知道如何比较 $existingData$data 变量,然后用于构建查询。

我怎样才能实现这个目标?

最佳答案

请不要使用这种方法,如果您想要一个能够超越时代的可靠应用程序,请使用特定的列名称,而不是一些为您构建 SQL 的垃圾 foreach 循环。如果您想避免编写 SQL,请使用 ORM,那里有大量的 ORM,其中大多数从一开始就与框架捆绑在一起,使学习更容易!

简单易学的框架示例:(但不一定是弱框架)

  • 蛋糕 PHP
  • 拉拉维尔

祝你好运

关于php - 在 PHP 中根据 POST 数据构建动态查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20551413/

相关文章:

javascript - 表单信息显示在另一页上

php - 如何在 PHP 中使用 PDO 从数据库获取参数

function - 向两个用户发送确认电子邮件

php - 在 colorbox 中加载页面

php - 查询列中的多个值

php - 引用 — 有关 PDO 的常见问题

php - Python 密码学 : Cannot sign with RSA private key using PKCS1v15 padding

php - 如何使用javascript从循环中的字段获取信息

javascript - 表单字段未存储在 mysql 数据库中

php - 如何使用 trim 函数从 NOW() 函数中删除时间