ralphi: SQL Befehl klappt nicht mit mysql_query()

Hi Leute,

mit mysql_query() müssten doch eigentlich alle SQL Befehle ausführbar sein, oder?

$table = "test";  
  
	$sql = "  
	SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO';  
	CREATE TABLE IF NOT EXISTS " . $table . " (  
	  id int(11) NOT NULL AUTO_INCREMENT,  
	  zeitstamp bigint(20) NOT NULL,  
	  backup int(11) NOT NULL,  
	  pos int(11) NOT NULL,  
	  name char(255) COLLATE latin1_german1_ci NOT NULL,  
	  opt1 int(11) NOT NULL,  
	  opt2 int(11) NOT NULL,  
	  opt3 int(11) NOT NULL,  
	  opt4 int(11) NOT NULL,  
	  zus1 int(11) NOT NULL,  
	  zus2 int(11) NOT NULL,  
	  zus3 int(11) NOT NULL,  
	  zus4 int(11) NOT NULL,  
	  PRIMARY KEY (id)  
	) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci AUTO_INCREMENT=13 ;  
	";  
  
	echo $sql;  
	mysql_query( $sql);

Wenn ich den SQL-code vom Browser in zB. phpmyadmin kopiere und ausführe - klappts.
Das obige script nicht.
Die Verbindung zur DB hab ich mit einem SELECT getestet - daran liegts nicht.
Was mach ich falsch?

Viele Grüße aus LA

--
ralphi
  1. Hallo,

    mit mysql_query() müssten doch eigentlich alle SQL Befehle ausführbar sein, oder?

    AFAIK ja, aber immer nur einer pro Aufruf. Dein SQL-Statement enthält aber zwei Anweisungen, von denen die zweite ignoriert wird.

    Wenn ich den SQL-code vom Browser in zB. phpmyadmin kopiere und ausführe

    Vom Browser?? Im Browser sollte kein PHP- oder SQL-Code ankommen. Wenn doch, dann läuft noch so richtig was schief.

    Ciao,
     Martin

    --
    Die letzten Worte des Architekten:
    Mir fällt da gerade was ein...
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. AFAIK ja, aber immer nur einer pro Aufruf. Dein SQL-Statement enthält aber zwei Anweisungen, von denen die zweite ignoriert wird.

      korrekt ;-)

      Vom Browser?? Im Browser sollte kein PHP- oder SQL-Code ankommen. Wenn doch, dann läuft noch so richtig was schief.

      hab ich: echo $sql; gmacht.

      Viele Grüße aus LA

      --
      ralphi
      1. Hallo,

        Im Browser sollte kein PHP- oder SQL-Code ankommen. Wenn doch, dann läuft noch so richtig was schief.
        hab ich: echo $sql; gmacht.

        hey, Schummeln gilt nicht! ;-)

        Ciao,
         Martin

        --
        F: Was macht ein Offizier, der in der Nase bohrt?
        A: Er holt das Letzte aus sich heraus.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
  2. Hi,

    Was mach ich falsch?

    Du liest nicht (aufmerksam genug) im Handbuch nach.

    http://php.net/manual/en/function.mysql-query.php: “mysql_query() sends a unique query (multiple queries are not supported) […]”

    Btw., den Hinweis, der ganz oben auf der Seite steht, solltest du auch berücksichtigen.

    MfG ChrisB

    --
    Autocomplete has spoiled me to a point where it happens every so often that I encounter a CAPTCHA, and I just type in the first character … and then wait for the rest of the code to be automatically suggested :/
    1. Hi,

      Du liest nicht (aufmerksam genug) im Handbuch nach.

      hab ich überhaupt nicht nachgeschlagen :-(

      Der Spruch:
      "mit mysql_query() müssten doch eigentlich alle SQL Befehle ausführbar sein, oder?"
      war eigentlich retorisch gemeint.

      ich setze mysql_query() seit Jahren ein. Hab ich als Fehler gänzlich ausgeschlossen. Dachte eher an eine mySQL-server Geschichte.
      Aber in der Tat, in den ganzen Jahren ergab sich nie, mehrere SQLs hintereinander zu packen (Wahrscheinlich wegen der Übersichtlichkeit).

      Viele Grüße aus LA

      --
      ralphi
      1. Hallo ralphi,

        ich setze mysql_query() seit Jahren ein.

        Das solltest du dir abgewöhnen, die Funktion (bzw. die ganze Erweiterung) steht auf der Abschussliste :-)

        Gruß,
        Tobias

        1. Mahlzeit,

          Das solltest du dir abgewöhnen, die Funktion (bzw. die ganze Erweiterung) steht auf der Abschussliste :-)

          Dieses Problem hätte er mit mysqli_query oder mysqli->query() genauso gehabt.

          --
          42
          1. Tach!

            Das solltest du dir abgewöhnen, die Funktion (bzw. die ganze Erweiterung) steht auf der Abschussliste :-)
            Dieses Problem hätte er mit mysqli_query oder mysqli->query() genauso gehabt.

            Das schon, aber die mysqli-Extension kennt mysqli_multi_query().

            dedlfix.