Вставить данные формы внутри php со случайными именами полей - PullRequest
0 голосов
/ 03 августа 2020

Я получаю некоторые данные формы в переменной $ data (случайные поля с их значениями), отформатированные с помощью serializearray из Jquery. В любом случае, я хочу хранить все данные, поле за полем, значение за значением в таблице MYSQL, не зная ни имен столбцов, ни их значений, просто потому, что это форма, которая создается пользователем случайным образом. Он может создать таблицу из другого php файла с желаемыми полями. После этого он заполняет эти поля и отправляет их в таблицу со следующим кодом. Проблема заключается в запросе Insert. В нем написано: «Неизвестное поле после $ imageName. Я тестировал замену двойных кавычек, простые и т.д. cc ... и безрезультатно. Заранее спасибо.

$col_name  = mysqli_real_escape_string($link,$_POST["table_name"]);
$imageName = $_POST["fileName"];
$data = $_POST["formValues"];
$sql = "INSERT INTO ".$col_name." (id,";
foreach($data as $key => $value)
{
    $counter++;
    //echo 'Key is: '.$key;
    //echo 'Value is: '.$value.'\n';
    $sql .= $key;
    if($counter<count($data))
    {
        $sql .=",";
    }
}
$sql .= ") ";
$counter=0;
$sql .= "VALUES (NULL, ";
foreach($data as $key => $value)
{
    $counter++;
    if($value==='image')
    {
        $sql .= '$imageName';
    }
    else
    {
        $sql .= '$value';
    }   
    if($counter<count($data))
    {
        $sql .=", ";
    }
}
$sql .= ") ";
echo $sql;
if(mysqli_query($link, $sql))
{
    //echo "Collection created successfully.";
    //echo 'ok';
    //redirect('../addCollection.php', false);
} 
else
{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
// Close connection
mysqli_close($link);

1 Ответ

0 голосов
/ 15 августа 2020
    $col_name  = mysqli_real_escape_string($link,$_POST["table_name"]);
    $imageName = $_POST["fileName"];
    $data = $_POST["formValues"];
    $sql = "INSERT INTO ".$col_name." (id,";
    foreach($data as $key => $value)
    {
        $counter++;
        //echo 'Key is: '.$key;
        //echo 'Value is: '.$value.'\n';
        $sql .= $key;
        if($counter<count($data))
        {
            $sql .=",";
        }
    }
    $sql .= ") ";
    $counter=0;
    $sql .= " VALUES (NULL, ";
    foreach($data as $key => $value)
    {
        $counter++;
        if($value==='image')
        {
            $sql .= '$imageName';
        }
        else
        {
            $sql .= '$value';
        }   
        if($counter<count($data))
        {
            $sql .=", ";
        }
    }

$sql .= ") ";
echo $sql;
if(mysqli_query($link, $sql))
{
    //echo "Collection created successfully.";
    //echo 'ok';
    //redirect('../addCollection.php', false);
} 
else
{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
// Close connection
mysqli_close($link);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...