当前位置: 首页 > 知识库问答 >
问题:

使用带有PDO的数组更新多个MySQL表

屠振濂
2023-03-14

非常类似于使用PDO数组更新多个MySQL表列。

但是我使用了一个复杂的形式

<input name="data[Name]" type="text" more stuff>

更新只是给我一个没有错误的空白页???

注意:使用了MySQLi,工作正常,只是更新到了PDO。

$data2返回了正确的数组。

这可能是订单吗?IE输出必须匹配列顺序?

分析了使用带有PDO的数组和https://guwii.com/bytes/update-multiple-database-columns-using-pdo/

*****更新******

$data = $_POST[data];

$data1 = array(ARRAY INFO HERE);

$data2 = array_merge($data, $data1);

function buildBindedQuery($fields){    
    end($fields);
    $lastField = key($fields);
    $bindString = ' ';
    foreach($fields as $field => $data2){
        $bindString .= $field . '=:' . $field;
        $bindString .= ($field === $lastField ? ' ' : ',');
    }

    return $bindString;                                             
}

$query = 'UPDATE details SET '.buildBindedQuery($data2).' WHERE id='.$_POST['id'].'';
$result = $conn->prepare($query);
$result->execute($data2);

共有1个答案

逄边浩
2023-03-14

我认为这个代码可以帮助你

        $data = $_POST['data'];

        $data1 = array ("Array info here");

        $data2 = array_merge($data, $data1);

        function buildBindedQuery($fields){
        end($fields);
        $lastField = key($fields);
        $bindString = ' ';
        foreach($fields as $field => $data2){
        $bindString .= $field . '=' . $field;
        $bindString .= ($field === $lastField ? ' ' : ',');
         }
         return $bindString;                                                
        }

        $servername = "localhost";
        $username = "";
        $password = '';
        $dbname = "";

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

        $variable = buildBindedQuery($data2);
        $variable2 = explode(",", $variable);

        foreach($variable2 as $var) {
            $va = explode("=", $var);
            $query = "UPDATE usuario SET $va[0]='". $va[1] ."' WHERE id=2";

            $result = $conn->prepare($query);

            $result->execute();
        }
 类似资料:
  • 我正在尝试将所有MySQL连接从旧的MySQL_查询切换到PDO。我试图使用不同的数组更新MySQL表的多个行和列,收到以下错误: [42000]:语法错误或访问冲突:1064您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以获取正确的语法,以便在第1行中使用接近(accnt、car、radio、misc)值('admin'、'300.00'、'400.00'、'10.00'),其中

  • 问题内容: 我试图用PDO编写更新查询,但我无法执行代码? 问题答案: 您的语法错误 您可能打算更新一行而不是全部更新,因此您必须使用子句来定位特定行 更改 至

  • 问题内容: 我有两个表,并且想为LEFT JOIN中的所有行更新T1中的字段。 举一个简单的例子,更新以下结果集的所有行: 在MySQL手册指出: 多表UPDATE语句可以使用SELECT语句中允许的任何类型的联接,例如LEFT JOIN。 但是我在记录的多表UPDATE中找不到执行此操作的正确语法。 正确的语法是什么? 问题答案: 请注意,使用/ 语法会更有效: 有关性能的详细信息,请参见我的博

  • 问题内容: 这个问题已经在这里有了答案 : 使用PDO插入多行 (1个答案) 4年前关闭。 我有数据库表:和 当前,唯一要插入类别表的函数与此类似: 我有一种形式来输入标题和插入URL图像的可能性。 通过单击提交标题,我要转到类别表,到目前为止,图像应该转到表图像,每个图像都有一个ID,但内部连接到该类别的ID。 桌子: 我无法正确执行此操作 我想要的结果示例: html表格 提交后 表类别: 表

  • 我知道以前有人问过这个问题,我已经阅读了很多答案,现在正在研究其中一个答案,但是我需要以下代码的帮助。 我在执行时没有收到任何错误,也没有任何内容提交到mysql表,如果你发现了什么,请告诉我,或者如果有更好的方法,请你给我指一个教程,我还没有太多的PDO或多行更新。 提前谢谢。 致山姆: 产出为:

  • 问题内容: 我知道您可以一次插入多行,是否可以在MySQL中一次更新多行(如在一个查询中)? 编辑:例如,我有以下内容 我想将以下所有更新合并到一个查询中 问题答案: 是的,这是可能的-您可以在插入的键更新中使用INSERT…。 使用您的示例: