---
title: "Avancerad insert (get_all_values)"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/112682-avancerad-insert-get-all-values"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "K++"
published: "2004-10-01T11:19:36.000Z"
updated: "2004-10-04T07:48:54.000Z"
replies: 4
views: 445
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/112682-avancerad-insert-get-all-values"
---

# Avancerad insert (get_all_values)

## #1 — K++, 2004-10-01T11:19Z

Försöker komma på en funktion som underlättar alla j\*dra inserts till databaser. Funktionen ska ta emot ett antal okända namn med värden från vanliga txt-fält / annat.

Tänker mig en funktion liknande denna;

```php
function globalinsert($db,$tabell)
{
$g_ins = new c_layer;
$g_ins->connect($db);
$sql = "INSERT INTO $tabell (";
$sql .= ??????????: # Alla namn separerade med komma
$sql .= ") VALUES(";
$sql .= ??????????; #Alla värden dvs $_POST['xxx'],$_POST['yyy']
$sql .= ")";
$sql = extract all values
$g_ins->query( $sql );
$g_ins->close();
.
}
```

 
Is this possible?

Permalänk: https://www.webforum.nu/p/112682

## #2 — Patrik81, 2004-10-01T13:20Z

Hej :)

Vet scriptet om fältnamnen i förväg eller kan dessa variera med?

Jag har en liten fundering på om man inte skulle kunna göra så att man döper formulärfälten till samma saker som fältnamnen i databasen (möjlig säkerhetsrisk iofs då man ger ut namnen på fält i tabellen, det är ju aldrig bra) och sedan med hjälp av get_defined_vars(); och funktionen som står i kommentarerna för den funktionen på php.net ( <http://se.php.net/manual/en/function.get-defined-vars.php> )

Funktionen han/hon döpt till "generateDebugReport"
Modifierar man denna så får man ju snabbt och lätt ut både variabelnamnet, och det tillhörande värdet, och borde således kunna pluppa in det i din sql-kod.

Vad tror du om det?

MVH Patrik

Permalänk: https://www.webforum.nu/p/1450503

## #3 — K++, 2004-10-01T13:51Z

Hej igen Patrik81! Fast det är nog en annan historia.

Jag löste det på ett litet annorlunda sätt;

```php
	$arr = get_defined_vars();
	$postcrap = $arr[HTTP_POST_VARS];
	$nycklar = implode(",",array_keys($postcrap));
	$falt = "'" . implode("','",array_values($postcrap)) . "'";
```

Permalänk: https://www.webforum.nu/p/1450518

## #4 — Melea, 2004-10-01T17:21Z

Låter intressant, kan du förklara dig lite mer hur du löste det? Hur funkar koden osv?

Permalänk: https://www.webforum.nu/p/1450600

## #5 — K++, 2004-10-04T07:48Z

Jag satt och pillade mig lite i naveln (tog som vanligt bort lite navelludd) och så löste det sig. Det är en ganska enkel lösning istället för att använda massa for satser. Jag har samma namn på fälten som fälten i databaserna. Och koden därovan skapar en del av sql-satsen. Dvs, fältnamnen och värdena i rättformat. Bara att lägga till lite parenteser så är den komplett.

```php
$sql = "INSERT INTO $dbset (" . $nycklar . ") VALUES (" . $falt . ")";
```

Permalänk: https://www.webforum.nu/p/1451655

---

Tråden på webben: https://www.webforum.nu/amne/php/112682-avancerad-insert-get-all-values
