Обновление нескольких таблиц MySQL с использованием массивов с помощью PDO - PullRequest
0 голосов
/ 01 января 2019

Очень похоже на Обновление нескольких столбцов таблицы MySQL с использованием массивов с PDO .

Но я использую сложную форму, используя

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

Обновление просто дает мне пустое местостраница без ошибок ???

Примечание: использовала MySQLi и работала нормально, просто обновлялась до PDO.

$ data2 возвращала правильный массив.

Возможно, это вещь порядка?Выходные данные IE должны соответствовать порядку столбцов?

Анализ Обновление нескольких столбцов таблицы MySQL с использованием массивов с 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 Ответ

0 голосов
/ 01 января 2019

Я думаю, что этот код может помочь вам

        $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();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...