Daten mit PHP in MySQL-Datenbank einfügen

Hi,

auch nach mehreren Versuchen schaffe ich es leider nicht, Daten aus Formularfeldern in eine MySQL-Datenbank einzufügen.

Hier der Code:

<?php include('sql/connect.inc');<br />
if(!isset($fl))
{
echo '
Programm
Kurzbeschreibung
Beschreibung
Gruppe
Größe
Autor
Link



';
}
else
{
$einfuegen="INSERT INTO 'tools'
(id,name,decr,ldes,grou,size,auth,link)
VALUES
(''
,'$_HTTP_POST_VARS[dbname]'
,'$_HTTP_POST_VARS[dbdecr]'
,'$_HTTP_POST_VARS[dbldes]'
,'$_HTTP_POST_VARS[dbgrou]'
,'$_HTTP_POST_VARS[dbsize]'
,'$_HTTP_POST_VARS[dbauth]'
,'$_HTTP_POST_VARS[dblink]'
)";
$eintrag=mysql_query($einfuegen);
echo 'Daten übertragen und in die Datenbank eingefügt!';
include('sql/disconnect.inc');
}
?>


Es wird keine Fehlermeldung ausgegeben. Sogar das "echo 'Daten übertragen und in die Datenbank eingefügt!';" wird ausgeführt/angezeigt, doch in der Datenbank ist von den eingegebenen Inhalten nichts zu finden.

Vielen Dank im Voraus!!!!

Gruß
Thomas

Hallo,

include(‚sql/connect.inc‘);

sicher, dass dieses connect.inc auch eine Verbindung aufbaut?

$einfuegen=„INSERT INTO ‚tools‘
(id,name,decr,ldes,grou,size,auth,link)
VALUES
(’’
,’$_HTTP_POST_VARS[dbname]’
,’$_HTTP_POST_VARS[dbdecr]’
,’$_HTTP_POST_VARS[dbldes]’
,’$_HTTP_POST_VARS[dbgrou]’
,’$_HTTP_POST_VARS[dbsize]’
,’$_HTTP_POST_VARS[dbauth]’
,’$_HTTP_POST_VARS[dblink]’
)“;

hier würde ich Dir eigentlich dazu raten, dass Du die alternative Schreibweise verwendest…

INSERT INTO table SET key1=‚value1‘, key2=‚value2‘ etc

$eintrag=mysql_query($einfuegen);
echo ‚Daten übertragen und in die Datenbank eingefügt!‘;

mach daraus mal ein

if (!mysql_query($einfuegen)) die(„Fehler im SQL: $einfuegen“);
else echo „Daten übertragen und in die Datenbank eingefügt!“;

Es wird keine Fehlermeldung ausgegeben. Sogar das „echo ‚Daten
übertragen und in die Datenbank eingefügt!‘;“ wird
ausgeführt/angezeigt, doch in der Datenbank ist von den
eingegebenen Inhalten nichts zu finden.

dass es angezeigt wird ist klar - hat ja mit dem restlichen code auch nichts zu tun…

  1. sicherstellen dass das includierte script gefunden wird
    if (!file_exists($dbfile)) die („Datenbankdatei nicht gefunden“);
  2. sicherstellen, dass die Verbindung auch klappt
  3. keine .inc als extentions verwenden - oder willst Du, dass jemand Deine Datenbankverbindungen auslesen kann? benenn sie auf .php um wie es sich gehört. Wenn Du nen merker brauchst dass es includiert wird dann mach ein inc_filename.php oder filename.inc.php draus.
  4. Code sollte immer so aufgebaut sein, dass er wenn er erfolgsmeldungen bringt diese auch verifiziert hat. An kritischen stellen sollte - wenn das nicht der Fall ist abgebrochen werden.

Möglichst mysql_error() benutzen, sonst kommt auch keine Fehlermeldung:

http://www.lernpilot.de/wbt/kurse/index.php?kurs=mys…

Hier gibts ein kleines Tutorial, wie man so eine kleine Adressverwaltung in PHP programmieren kann:

http://www.heddesheimer.de/coaching/mysql_adressen.html

Gruß Marian

zustimm und
dann nochwas zu dem:

,’$_HTTP_POST_VARS[dbname]’
,’$_HTTP_POST_VARS[dbdecr]’
,’$_HTTP_POST_VARS[dbldes]’
,’$_HTTP_POST_VARS[dbgrou]’
,’$_HTTP_POST_VARS[dbsize]’
,’$_HTTP_POST_VARS[dbauth]’
,’$_HTTP_POST_VARS[dblink]’

  1. $_HTTP_POST_VARS der erste Unterstrich ist zu viel. also so schreiben: $HTTP_POST_VARS

  2. Setze Zeichenketten immer in Anführungszeichen in den Array-Keys, ansonsten werden die erstmal als Konstanten interpretiert und erst, wenn php feststellt, dass die nicht definiert sind als Zeichenketten. Das kann unter Umständen irgendwann mal zu ungewollten Seiteneffekten führen.

Also statt: $HTTP_POST_VARS[dblink] schreibe: $HTTP_POST_VARS[‚dblink‘]

Grüße
Jens

Hi,

vielen Dank für die schnellen und hilfreichen Antworten!!!

Noch zwei Fragen:

Wie „sauber“ ist es, wenn mann statt $HTTP_POST_VARS[‚dat‘] einfach $dat schreibt?

Bei folgendem Code wird „Fehler im SQL:“ ausgegeben:

$einfuegen="UPDATE tools SET id='$idx',
 name='$dbname',
 decr='$dbdecr',
 ldes='$dbldes',
 grou='$dbgrou',
 size='$dbsize',
 auth='$dbauth',
 link='$dblink'
 WHERE id=$idx";
#Ich möchte hier einen Eintrag(mit einer bestimmten ID) in meiner Datenbank mit veränderten Werten ersetzen.

if (!mysql\_query($einfuegen)) die("Fehler im SQL: $einfuegen");
else echo "Daten übertragen und in die Datenbank eingefügt!";
echo mysql\_error();

Vielen Dank im Voraus!!!

Gruß
Thomas

Wie „sauber“ ist es, wenn mann statt $HTTP_POST_VARS[‚dat‘]
einfach $dat schreibt?

ganz böse!

Das geht nur, wenn register_globals=on beim Server eingestellt ist

Siehe: http://www.heddesheimer.de/coaching/register.html

Bei folgendem Code wird „Fehler im SQL:“ ausgegeben:
echo mysql_error();

was wird denn von mysql_error() ausgegeben?

Gruß Marian

hi,

Bei folgendem Code wird „Fehler im SQL:“ ausgegeben:
echo mysql_error();

was wird denn von mysql_error() ausgegeben?

Leider steht da nur „Fehler im SQL:“.
Von mysql_error() kommt keine Meldung…

Vielen Dank für die schnelle Antwort!

Gruß
Thomas

Komische Sache…
Sers du,

Lass mal das id=’$idx’ in deinem Update-Quey weg, da das 1.) ja nach diesem Wert in dem WHERE-Part gesucht wird und er demnach nicht geändert werden braucht und 2.) Schätze ich mal soll dieser werd ein Integer sein , aber du setzt den Wert in Anführungszeichen, wie einen String.

Und du bist auch sicher, dass die Variablen gefüllt sind, vor allem die $idx

Poste doch mal bitte nen ausgefüllten Query. Also den Inhalt von $einfuegen .

Hi,

Lass mal das id=’$idx’ in deinem Update-Quey weg, da das 1.)
ja nach diesem Wert in dem WHERE-Part gesucht wird und er
demnach nicht geändert werden braucht und 2.) Schätze ich mal

habe beim updaten die Zeile rausgenommen (siehe unten)

soll dieser werd ein Integer sein , aber du setzt den Wert in
Anführungszeichen, wie einen String.

Also das Einfügen in ein MySQL-Feld mit dem Typ Integer funktioniert eigentlich…

Und du bist auch sicher, dass die Variablen gefüllt sind, vor
allem die $idx

Ja, ziemlich sicher, da ich vor dem Ändern die Werte in das Eingabeformular eintrage (Inhalte der Variablen stehen dann in den Eingabefeldern).

Poste doch mal bitte nen ausgefüllten Query. Also den Inhalt
von $einfuegen .

Hier ist $einfuegen:

if($act=='enter') 
/\* act enthält sozusagen den Auftrag (einfügen oder editieren)\*/
/\* je nachdem wird die entsprechende Anfrage ausgeführt \*/
{
$einfuegen="INSERT INTO tools SET id='$idx',
 name='$\_POST[dbname]',
 decr='$\_POST[dbdecr]',
 ldes='$\_POST[dbldes]',
 grou='$\_POST[dbgrou]',
 size='$\_POST[dbsize]',
 auth='$\_POST[dbauth]',
 link='$\_POST[dblink]'";
}
else if($action=='edit')
{
$einfuegen="UPDATE tools SET name='$\_POST[dbname]',
 decr='$\_POST[dbdecr]',
 ldes='$\_POST[dbldes]',
 grou='$\_POST[dbgrou]',
 size='$\_POST[dbsize]',
 auth='$\_POST[dbauth]',
 link='$\_POST[dblink]'
 WHERE id=$idx";
}

if (!mysql\_query($einfuegen)) die("Fehler im SQL: $einfuegen");
else echo "Daten übertragen und in die Datenbank eingefügt!";
echo mysql\_error();


Vielen Dank im Voraus!!!
Gruß
Thomas

Meinte eigentlich, den Inhalt der Variable, wie sie gefüllt ist, wenn die Anfrage schiefläuft, nicht wie sich der Inhalt aufbaut.
Also das, was im Browser erscheint, wenn du echo $einfuegen; machst.

Manchmal erkennt man die Fehler nämlich erst dann.

Hi

Meinte eigentlich, den Inhalt der Variable, wie sie gefüllt
ist, wenn die Anfrage schiefläuft, nicht wie sich der Inhalt
aufbaut.

Sry, hatte das nicht so richtig verstanden…

Also das, was im Browser erscheint, wenn du echo $einfuegen;
machst.

Ich habe das zwar in den Quelltext eingefügt (echo $einfuegen:wink:, doch es wird nichts ausgegeben (außer ‚Fehler im SQL:‘).

Manchmal erkennt man die Fehler nämlich erst dann.

Ich habe jedoch den UPDATE-Teil bei PHPMyAdmin eingegeben und statt der Variablen konkrete Werte eingesetzt und es ging! Also so ganz falsch kann’s nicht sein…

Hier der Code nach aktuellem Stand:

$result=mysql\_query("SELECT \* FROM tools ORDER BY id");
$idx=mysql\_num\_rows($result)+1; 

if($act=='enter')
{
$einfuegen="INSERT INTO tools SET id=$idx,
 name='$\_POST[dbname]',
 decr='$\_POST[dbdecr]',
 ldes='$\_POST[dbldes]',
 grou='$\_POST[dbgrou]',
 size=$\_POST[dbsize],
 auth='$\_POST[dbauth]',
 link='$\_POST[dblink]'";
}
else if($action=='edit')
{
$einfuegen="UPDATE tools SET name='$\_POST[dbname]',
 decr='$\_POST[dbdecr]',
 ldes='$\_POST[dbldes]',
 grou='$\_POST[dbgrou]',
 size=$\_POST[dbsize],
 auth='$\_POST[dbauth]',
 link='$\_POST[dblink]'
 WHERE id=$idx";
}
echo $einfuegen;
echo mysql\_error();
if (!mysql\_query($einfuegen))die("Fehler im SQL: $einfuegen");
else echo "Daten übertragen und in die Datenbank eingefügt!";

Danke im Voraus!!!

Gruß
Thomas

$einfuegen ist also leer?
Na das hört sich so an, also ob $act nicht gefüllt ist, oder mit nem falschen Wert.
Sorge dafür, dass eine der beiden if-Statments erfüllt wird.

Dann nochwas zum Code:
Du füllst $idx mit der Anzahl der Datensätze plus 1.
Daraus ergeben sich 2 Fehlerszenarien:
1.1)
Du füllst immer nur die Tabelle, ohne etwas zu löschen. Nun willst du etwas ändern. Jedoch wird ein Datensatz geupdatet, welcher per $idx angesprochen wird, der definitiv nicht existiert, weil ja $idx immer AnzahlDatensätze+1 ist.
Und sollte doch mal was gelöscht werden, ist es unwägbar, welcher Datensatz geändert wird.
1.2)
Du füllst eine Tabelle, löscht mal was von früher. Willst nun wieder einfügen.
$idx wird zu einer ID, welche schon vorhanden ist.
(z.B. 10 Datensätze. -1 wegen Löschung => 9 Datensätze. Neueintrage: 9+1 = 10 , der ist aber schon belegt. )

Lösungsvorschlag:
Setze das Feststellen der neuen ID mit ins if-Statement. Anstelle des Auslesen der ganzen Tabelle nimm:
$result=mysql_query(„SELECT max(id) FROM tools“);
$id = mysql_fetch_row($result);
$idx = $id[0];

Und beim Ändern des Datensatzes muss die ID von woanderst kommen.

Grüße

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

$einfuegen ist also leer?
Na das hört sich so an, also ob $act nicht gefüllt ist, oder
mit nem falschen Wert.

Also act wird auf jeden Fall gefüllt. Das habe ich schon überprüft.

Sorge dafür, dass eine der beiden if-Statments erfüllt wird.

Lösungsvorschlag:
Setze das Feststellen der neuen ID mit ins if-Statement.
Anstelle des Auslesen der ganzen Tabelle nimm:
$result=mysql_query(„SELECT max(id) FROM tools“);
$id = mysql_fetch_row($result);
$idx = $id[0];

Den Lösungsvorschlag habe ich übernommen - DANKE!

Und beim Ändern des Datensatzes muss die ID von woanderst
kommen.

Die müsste eigentlich richtig übergeben werden…
Hab’s mir ziemlich genau angesehen

Hier der Code nach aktuellem Stand:

<?php include('sql/connect.inc.php');<br />
if(!isset($fl))
{
echo '
';

for ($m=0;$m';
echo $dbvalues[$m];
echo'';
}
echo'



';
}
else
{

if($act=='enter')
{

$result=mysql_query("SELECT max(id) FROM tools");
$id = mysql_fetch_row($result);
$idx = $id[0];

$einfuegen="INSERT INTO tools SET id=$idx,
name='$_POST[dbname]',
decr='$_POST[dbdecr]',
ldes='$_POST[dbldes]',
grou='$_POST[dbgrou]',
size=$_POST[dbsize],
auth='$_POST[dbauth]',
link='$_POST[dblink]'";
}
else if($action=='edit')
{
$einfuegen="UPDATE tools SET name='$_POST[dbname]',
decr='$_POST[dbdecr]',
ldes='$_POST[dbldes]',
grou='$_POST[dbgrou]',
size=$_POST[dbsize],
auth='$_POST[dbauth]',
link='$_POST[dblink]'
WHERE id=$idx";
}
echo $einfuegen;
echo mysql_error();
if (!mysql_query($einfuegen))die("Fehler im SQL: $einfuegen");
else echo "Daten übertragen und in die Datenbank eingefügt!";

include('sql/disconnect.inc.php');
}
?>


Gruß
Thomas

Inkremetiere $idx noch einmal. Mein Vorschlag hat nur den höchsten Wert ausgelesen, diesen aber nicht zum nächsten freien Wert erhöht. Hatte ich nicht mehr dran gedacht. Sorry.

Nun gib mal alle benutzten Variablen in folgender Form aus:
echo '$variable: ‚.$variable.‘
';
Und gib mir das Ergebnis.
Weiß nämlich nicht mehr, an was das nun noch liegen könnte…

Grüße
Jens

hi,

Inkremetiere $idx noch einmal. Mein Vorschlag hat nur den
höchsten Wert ausgelesen, diesen aber nicht zum nächsten
freien Wert erhöht. Hatte ich nicht mehr dran gedacht. Sorry.

Kein Problem

Nun gib mal alle benutzten Variablen in folgender Form aus:
echo '$variable: ‚.$variable.‘
';
Und gib mir das Ergebnis.
Weiß nämlich nicht mehr, an was das nun noch liegen könnte…

Wenn ich nun den Eintrag mit ID=1 verändern will, stehen da folgende Daten:’
$einfuegen:
ERROR - $einfuegen enthält nichts!
#####Denke mal das es daran liegt, dass $einfuegen leer ist######
$idx: 1
$act: edit
$site: sql/enter.inc.php
Fehler im SQL:

Hier der Quelltext in seiner aktuellen Form:

<?php include('sql/connect.inc.php');<br />
if(!isset($fl))
{
echo '
';

for ($m=0;$m';
echo $dbvalues[$m];
echo'';
}
echo'



';
}
else
{

if($act=='enter')
{

$result=mysql_query("SELECT max(id) FROM tools");
$id = mysql_fetch_row($result);
$idx = $id[0];
$idx++;

$einfuegen="INSERT INTO tools SET id=$idx,
name='$_POST[dbname]',
decr='$_POST[dbdecr]',
ldes='$_POST[dbldes]',
grou='$_POST[dbgrou]',
size=$_POST[dbsize],
auth='$_POST[dbauth]',
link='$_POST[dblink]'";
}
else if($action=='edit')
{
$einfuegen="UPDATE tools SET name='$_POST[dbname]',
decr='$_POST[dbdecr]',
ldes='$_POST[dbldes]',
grou='$_POST[dbgrou]',
size=$_POST[dbsize],
auth='$_POST[dbauth]',
link='$_POST[dblink]'
WHERE id=$idx";
}
echo '$einfuegen: '.$einfuegen.'
';
if($einfuegen==''){echo 'ERROR - $einfuegen enthält nichts!';}
echo '$idx: '.$idx.'
';
echo '$act: '.$act.'
';
echo '$site: '.$site.'
';

echo mysql_error();
if (!mysql_query($einfuegen))die("Fehler im SQL: $einfuegen");
else echo "Daten übertragen und in die Datenbank eingefügt!";




include('sql/disconnect.inc.php');
}
?>


Vielen Dank für deine Mühe!!!

Gruß
Thomas

Hier der aktuelle Quelltext

Hi,

habe soeben den ersten Fehler gefunden:

if($act==‚enter‘)

else if($action==‚edit‘)

Hier habe ich statt ‚act‘ ‚action‘ stehen…
Das erklärt warum $einfuegen leer war.

Nun habe ich folgende Fehlermeldung (Diesmal mit dem Inhalt von $einfuegen):

$idx: 1
$act: edit
$site: sql/enter.inc.php

Fehler im SQL: UPDATE tools SET name=’’, decr=’’, ldes=’’, grou=’’, size=, auth=’’, link=’’ WHERE id=1

Also scheint es ein Problem mit der Übergabe der Variablen zu geben, obwohl ich es beim Einfuegen genauso übergeben habe.

Hier der aktuelle Quelltext:

<?php include('sql/connect.inc.php');<br />
if(!isset($fl))
{
echo '
';

for ($m=0;$m';
echo $dbvalues[$m];
echo'';
}
echo'



';
}
else
{

if($act=='enter')
{

$result=mysql_query("SELECT max(id) FROM tools");
$id = mysql_fetch_row($result);
$idx = $id[0];
$idx++;

$einfuegen="INSERT INTO tools SET id=$idx,
name='$_POST[dbname]',
decr='$_POST[dbdecr]',
ldes='$_POST[dbldes]',
grou='$_POST[dbgrou]',
size=$_POST[dbsize],
auth='$_POST[dbauth]',
link='$_POST[dblink]'";
}
else if($act=='edit')
{
$einfuegen="UPDATE tools SET name='$_POST[dbname]',
decr='$_POST[dbdecr]',
ldes='$_POST[dbldes]',
grou='$_POST[dbgrou]',
size=$_POST[dbsize],
auth='$_POST[dbauth]',
link='$_POST[dblink]'
WHERE id=$idx";
}
echo '$idx: '.$idx.'
';
echo '$act: '.$act.'
';
echo '$site: '.$site.'

';

echo mysql_error();
if (!mysql_query($einfuegen))die("Fehler im SQL: $einfuegen");
else echo "Daten übertragen und in die Datenbank eingefügt!";




include('sql/disconnect.inc.php');
}
?>


Vielen Dank!!!

Gruß
Thomas

Es wird langsam :smile:
statt: $_POST[dbgrou]
schreibe: $_POST[‚dbgrou‘]

das selbe für alle anderen $_POST Variablen auch.

Bei der oberen Form sucht PHP nach einer Konstanten dbgrou , welche es nicht gibt. Also könnte ein leerer String ausgegeben werden.
Mit error_reporting(E_ALL); am Anfang des scripts sollten die entsprechenden Fehlermeldungen auftauchen.

Hi,

das hatte ich vorher mal versucht, die Anführungszeichen so zu setzen, doch es kommt dann immer der unten genannte Fehler.

Verstehe das auch nicht, warum deswegen dann nen Fehler kommt, obwohl das ja so 100%ig korrekt wäre…

statt: $_POST[dbgrou]
schreibe: $_POST[‚dbgrou‘]

das selbe für alle anderen $_POST Variablen auch.

Folgende Fehlermeldung, wenn ich die Anführungszeichen so setze:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Server\xampp\htdocs\dat\win-inc\sql\enter.inc.php on line 42

Hier Zeile 42:
name=$_POST[‚dbname‘],

Und hier der Quelltext nach aktuellem Stand (mit ‚eigentlich‘ richtigen Anführungszeichen):

<?php include('sql/connect.inc.php');<br />error\_reporting(E\_ALL);
if(!isset($fl))
{
echo '
';

for ($m=0;$m';
echo $dbvalues[$m];
echo'';
}
echo'



';
}
else
{

if($act=='enter')
{

$result=mysql_query("SELECT max(id) FROM tools");
$id = mysql_fetch_row($result);
$idx = $id[0];
$idx++;

$einfuegen="INSERT INTO tools SET id=$idx,
name=$_POST['dbname'],
decr=$_POST['dbdecr'],
ldes=$_POST['dbldes'],
grou=$_POST['dbgrou'],
size=$_POST['dbsize'],
auth=$_POST['dbauth'],
link=$_POST['dblink']";
}
else if($act=='edit')
{
$einfuegen="UPDATE tools SET name=$_POST['dbname'],
decr=$_POST['dbdecr'],
ldes=$_POST['dbldes'],
grou=$_POST['dbgrou'],
size=$_POST['dbsize'],
auth=$_POST['dbauth'],
link=$_POST['dblink']
WHERE id=$idx";
}
echo '$idx: '.$idx.'
';
echo '$act: '.$act.'
';
echo '$site: '.$site.'

';

echo mysql_error();
if (!mysql_query($einfuegen))die("Fehler im SQL: $einfuegen");
else echo "Daten übertragen und in die Datenbank eingefügt!";




include('sql/disconnect.inc.php');
}
?>


Vielen Dank für deine Mühe!!!

Gruß
Thomas

Da kommt wohl der parser mit den vielen ’ durcheinander, weil ja quasi verschachtelt.

Probier mal folgendes :

$einfuegen="INSERT INTO tools SET id=$idx,
 name='".$\_POST['dbname']."',
 decr='".$\_POST['dbdecr']."',
 ldes='".$\_POST['dbldes']."',
 grou='".$\_POST['dbgrou']."',
 size='".$\_POST['dbsize']."',
 auth='".$\_POST['dbauth']."',
 link='".$\_POST['dblink']."'";
}
else if($act=='edit')
{
$einfuegen="UPDATE tools SET name='".$\_POST['dbname']."',
 decr='".$\_POST['dbdecr']."',
 ldes='".$\_POST['dbldes']."',
 grou='".$\_POST['dbgrou']."',
 size='".$\_POST['dbsize']."',
 auth='".$\_POST['dbauth']."',
 link='".$\_POST['dblink']
 WHERE id=$idx";
}

Gib die $_POST-Variablen auch mal aus, wenn´s immernoch nicht klappt.

per:

echo "

    ";
    print\_r($\_POST);
    echo "

";

Wird sich ja wohl mal finden lassen der Fehler…

Korrektur
Kleiner Fehler.

Nimm das:

$einfuegen="INSERT INTO tools SET id=$idx,
 name='".$\_POST['dbname']."',
 decr='".$\_POST['dbdecr']."',
 ldes='".$\_POST['dbldes']."',
 grou='".$\_POST['dbgrou']."',
 size='".$\_POST['dbsize']."',
 auth='".$\_POST['dbauth']."',
 link='".$\_POST['dblink']."'";
}
else if($act=='edit')
{
$einfuegen="UPDATE tools SET name='".$\_POST['dbname']."',
 decr='".$\_POST['dbdecr']."',
 ldes='".$\_POST['dbldes']."',
 grou='".$\_POST['dbgrou']."',
 size='".$\_POST['dbsize']."',
 auth='".$\_POST['dbauth']."',
 link='".$\_POST['dblink']."'
 WHERE id=$idx";
}