Frank Dell: mySQL - Spalte hinzufügen

Hallo,

in einer Tabelle soll eine neue Spalte angelegt werden. Ich bekomme es leider nicht hin.

Hier der Script-Ausschnitt:
$BEZEICHNUNG = "egal";
if ($new_row == "ALTER TABLE BILD\_DB.BILDER ADD $BEZEICHNUNG INT NOT NULL")
    echo "Hurra";
   else
    echo "Fehler";

Leider wird immer "Fehler" angezeigt;-(
Was mache ich falsch?

Viele Grüße

Frank Dell

  1. Huhu Frank

    Leider wird immer "Fehler" angezeigt;-(
    Was mache ich falsch?

    falsch ist eigentlich [1] nichts, allerdings machst Du (resp. das Skript) auch nichts.
    Du möchtest doch einen SQL-Befehl und keinen Stringvergleich ausführen oder?

    Viele Grüße

    lulu

    [1] wenn man von der Verwendung von ` an Stelle von ' einmal absieht

  2. Hallo,

    Hi,

    in einer Tabelle soll eine neue Spalte angelegt werden. Ich bekomme es leider nicht hin.

    Hier der Script-Ausschnitt:
    $BEZEICHNUNG = "egal";
    if ($new_row == "ALTER TABLE BILD\_DB.BILDER ADD $BEZEICHNUNG INT NOT NULL")
        echo "Hurra";
       else
        echo "Fehler";

    1. Warum die ganzen `?
    2. Das SQL-Statement wird nicht ausgeführt, es wird mit dem Wert der Variabe $new_row verglichen. Gleichheit liegt vermutlich nicht vor, also wird "Fehler" ausgegeben.

    Andreas

  3. Hallo,

    in einer Tabelle soll eine neue Spalte angelegt werden. Ich bekomme es leider nicht hin.

    Hier der Script-Ausschnitt:
    $BEZEICHNUNG = "egal";
    if ($new_row == "ALTER TABLE BILD\_DB.BILDER ADD $BEZEICHNUNG INT NOT NULL")
        echo "Hurra";
       else
        echo "Fehler";

    Leider wird immer "Fehler" angezeigt;-(
    Was mache ich falsch?

    -->

    $conn = pg_connect("", "", "", "", "bilder_db");

    $sql = "ALTER TABLE BILDER ADD COLUMN $BEZEICHNUNG INT NOT NULL";

    $result = pg_exec($conn, $sql);
    if(!$result) echo "fehler";
    else echo "hurra";

    <--

    so würde ich das machen, hab ehrlich gesagt nicht genau kapiert was du da geschrieben hast, aber denke du meintest das, korrigier mich wenn ich falsch liege

    hope it helps
    romy

  4. Hallo,

    in einer Tabelle soll eine neue Spalte angelegt werden. Ich bekomme es leider nicht hin.

    $BEZEICHNUNG = "egal";
    if ($new_row == "ALTER TABLE BILD\_DB.BILDER ADD $BEZEICHNUNG INT NOT NULL")
        echo "Hurra";
       else
        echo "Fehler";

    Leider wird immer "Fehler" angezeigt;-(
    Was mache ich falsch?

    Es heißt nicht

    echo "Fehler";

    sondern

    echo "Fehler: ".mysql_error();

    Und -nur ganz nebenbei- wäre es vielleicht sinnvoll, Deinen Befehl auch an die Datenbank zu schicken (zum Beispiel mit mysql_query), anstatt die Variable $new_row mit dem Text "ALTER.." zu vergleichen :)

    Gruß,
      soenk.e

  5. Dnke für die Tips, jetzt geht es.

    So hab ich es gemacht:

    Die Variable "$BEZEICHNUNG" wird aus einem Formular übergeben

    $theTable_new_row = "ALTER TABLE BILDER ADD $BEZEICHNUNG VARCHAR(255)";
    $resultTable_new_row = mysql_query($theTable_new_row, $mysql_link);
    if (!$resultTable_new_row)
    {
     $fehlercode = mysql_error();
     db_error( __FILE__ , __LINE__ , $fehlercode);
    }

    Eigentlich hätte ich da auch selber drauf kommen können. Aber wie das so ist. Der Auftraggeber drängt, der Zeitplan ist sowieso schon überzogen,  man arbeit die Nacht durch und am Ende geht (fast) gar nichts mehr ;-(
    Dann schläft man zwei Stunden und die Welt ist wieder schön ;-)

    Danke nochmals.

    Viele Grüße
    Frank Dell