Hm, to je jiste uzasne, nicmene potrebujes mit seznam povolenych atributu, jinak ti to snadno hacker napadne. A vyloucis tim nezadouci nazvy. A pak z te array muzes sestavit i sql prikaz pro prepare statement.
A slo to napsat i takhle:
foreach ($_GET as $key => $value) {
$$key = $value;
}
Ale, to nema podle mne s problemem nic spolecneho. Stale cekame na nejaky kod, se kterym prijdes, ktery bude aspon trochu pripominat vytvareni dotazu. Neco takoveho...
google = dynamic columns sql query php pdo prepare statement
... hm, tak bude treba pouzit jina slova :)
// google = php array keys to string
implode(", ", array_keys($array));
// google = php array values to string
implode(", ", array_values($array));
implode(", ", $array);
json_encode(array);
serialize(array);
Kazdopadne bys to mel osetrit, jak sql key, tak sql value nez to z implodujes.
https://www.php.net/manual/en/pdo.prepare
Jestli to spravne chapu, tak muzes bindovat kazdy parametr zvlast, jen si musis vygenerovat z array_keys ten sql dotaz.
<?php
$var="User', email='test";
$a=new PDO("mysql:host=localhost;dbname=database;","root","");
$b=$a->prepare("UPDATE `users` SET user=:var");
$b->bindParam(":var",$var);
$b->execute();
?>
https://www.php.net/manual/en/pdostatement.bindparam
// Example #1 Execute a prepared statement with named placeholders
<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>
Mozna bys mel zacit prohlizet i dokumentaci. Da se z ni vytahnout nekolik zajimavych konstrukci. Neni problem si dohledat v ni funkce, ktere neznas a podivat se na example, co ma funkce na vstupu a co s tim udela. Obcas to tam vypisuji. Ja osobne pouzivam to vlastni escapovani, jak jsem psal. Kit ti mohl to bind najit, on je na to expert, kdyz se mluvi o pdo.