Hi,
ich habe hier ein kleines Syntaxproblem bei einem SQL-Update Befehl welcher über ein dynamisch erzeugten String arbeiten soll:
Da dieses Script für alle Tabellen der Datenbank funktionieren soll, muss ich dynamisch die Spaltennamen der Tabellen auslesen und in ein String schreiben. Leider funktionierte die Updatefunktion dann anschliessend doch nicht. Optisch sieht der String aber gut aus. Was habe ich falsch gemacht?
ich habe hier ein kleines Syntaxproblem bei einem SQL-Update Befehl welcher über ein dynamisch erzeugten String arbeiten soll:
PHP-Code:
<?php
/**************************************/
/* Datenbankfelder Änderung speichern */
/**************************************/
//nur zum Test, diese Daten kommen ansonsten aus Flash MX
$tabelle="links";
$linksID="1";
$linksTitel="neu";
$linksURL="lalal";
$linksKategorie="dsfsdfsf";
$linksNotizen="sdfsfsfd";
$linksDatumNeu="";
$linksUserNeu="";
$linksDatumAenderung="";
$linksUserAenderung="";
//Verbindung zum MYSQL-Server Herstellen
$conn = mysql_connect("localhost","xxx","xxx");
//Verbindung zur Datenbank herstellen
$db = mysql_select_db("privat");
//dynamisch alle wichtigen Spaltennamen auslesen
$rshelper = mysql_query("SELECT * FROM ".$tabelle, $conn);
$anzahlspalten = mysql_num_fields($rshelper);
$sql ="UPDATE ".$tabelle." SET ";
for ($x=0;$x<$anzahlspalten;$x++)
{
$sql = $sql.mysql_field_name($rshelper, $x)."='$".mysql_field_name($rshelper, $x)."'";
if ($x<$anzahlspalten)
{
$sql = $sql.", ";
}
}
$sql = $sql."WHERE ".mysql_field_name($rshelper, 0)."='$".mysql_field_name($rshelper, 0)."'";
echo $sql;
//Datenbank updaten
$rs = mysql_query ($sql, $conn);
if ($rs) echo "OK";
else echo "false";
mysql_close($conn);
?>
Kommentar