php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.07.2009, 11:14  
Neuer Benutzer
 
Registriert seit: 13.06.2008
Beiträge: 20
Thamannta befindet sich auf einem aufstrebenden Ast
Standard Fehlermeldung bei SQL anweisung

Hallo,

ich bekomme beim übertragen einer SQL-Anweisung immer die Fehlermeldung

"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; TRUNCATE tbl_translation; TRUNCATE tbl_sprachen; TRUNCATE tbl_productmethods; ' at line 1"

Wenn ich aber den erstellten String direkt in phpmyadmin eingebe klappt alles wunderbar.

Hier mal der code zur erstellung der anweisung
PHP-Code:
$dbInternet = @mysql_connect($hostInternet,$userInternet,$passwdInternet
    or die ( 
fwrite($logdatei,'Konnte keine Verbindung zum Server '.$hostInternet.' mit user '.$userInternet.' herstellen') );
if (
$dbInternet)
{
    
$db_check = @mysql_select_db($dbNameInternet);
    
mysql_query("SET NAMES 'utf8'");
    
    
$sqlstr2 "";
    
    
// Alle Tabellen leeren

    
$sqlstr2 .= "TRUNCATE tbl_dokumente; ";
    
$sqlstr2 .= "TRUNCATE tbl_translation; ";
    
$sqlstr2 .= "TRUNCATE tbl_sprachen; ";
    
$sqlstr2 .= "TRUNCATE tbl_productmethods; ";
    
$sqlstr2 .= "TRUNCATE tbl_news; ";
    
$sqlstr2 .= "TRUNCATE tbl_geraete; ";
    
$sqlstr2 .= "TRUNCATE tbl_gd_beziehung; ";
    
$sqlstr2 .= "TRUNCATE tbl_dokumententypen; ";

    foreach (
$doktypenArray as $doktyp)
    {            
        
$sqlstr2 .='INSERT INTO tbl_dokumententypen (dok_schluessel,wert,dok_gruppe,rang,anzeigen) VALUE ("'.$doktyp[0].'","'.$doktyp[1].'","'.$doktyp[2].'","'.$doktyp[3].'","'.$doktyp[4].'");';    
    }

    
$result2 mysql_query($sqlstr2);
    if (
mysql_error())
    {
        echo 
"<br>".mysql_error()."<br>".$sqlstr2."<br>";
    } 
Nach diesem Teil wirrd die Datenbank wieder mit teilen einer anderen Datenbank gefüllt.
Ich habe das Gefühl, dass der String einfach abgeschnitten wird. denn als ich diesen Teil auskommentiert haben und mit der Füllanweisung begonnen habe het er die auch mit cder selben fehlermeldung in der Mitte abgeschnitten.

Hat jemand eine Idee woran das liegen könnte?
Thamannta ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.07.2009, 11:49  
Erfahrener Benutzer
 
Registriert seit: 14.08.2008
Beiträge: 157
Hexe befindet sich auf einem aufstrebenden Ast
Standard

Du kannst mit einem mysql_query nicht mehrere Befehle ausführen.
Hexe ist offline   Mit Zitat antworten
Alt 15.07.2009, 11:52  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

mysql_query() kann nicht Mehrfachabfragen umgehen.
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 15.07.2009, 12:53  
Neuer Benutzer
 
Registriert seit: 13.06.2008
Beiträge: 20
Thamannta befindet sich auf einem aufstrebenden Ast
Standard

Danke für den hinweis.
gibt es denn eine möglichkeit mehrere Befehle auszuführen, oder per php einen dump einzuspielen?
Thamannta ist offline   Mit Zitat antworten
Alt 15.07.2009, 13:04  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Thamannta Beitrag anzeigen
gibt es denn eine möglichkeit mehrere Befehle auszuführen
Schreib die Abfragen in einen Array und arbeite diese dann einzeln ab. Oder du verwendest generell die myqli-Klasse und arbeitest mit mysqli_multi_query()
Zitat:
Zitat von Thamannta Beitrag anzeigen
oder per php einen dump einzuspielen?
LOAD DATA
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 15.07.2009, 13:07  
Erfahrener Benutzer
 
Registriert seit: 07.06.2009
Beiträge: 107
PHP-Kenntnisse:
Anfänger
roest befindet sich auf einem aufstrebenden Ast
roest eine Nachricht über ICQ schicken roest eine Nachricht über Skype™ schicken
Standard

Statt:
PHP-Code:
    $sqlstr2 .= "TRUNCATE tbl_dokumente; ";
    
$sqlstr2 .= "TRUNCATE tbl_translation; ";
    
$sqlstr2 .= "TRUNCATE tbl_sprachen; ";
    
$sqlstr2 .= "TRUNCATE tbl_productmethods; ";
    
$sqlstr2 .= "TRUNCATE tbl_news; ";
    
$sqlstr2 .= "TRUNCATE tbl_geraete; ";
    
$sqlstr2 .= "TRUNCATE tbl_gd_beziehung; ";
    
$sqlstr2 .= "TRUNCATE tbl_dokumententypen; "
einfach:
PHP-Code:
mysql_query("TRUNCATE tbl_dokumente");
mysql_query("TRUNCATE tbl_translation");
mysql_query("TRUNCATE tbl_sprachen");
mysql_query("TRUNCATE tbl_productmethods");
mysql_query("TRUNCATE tbl_geraete");
mysql_query("TRUNCATE tbl_gd_beziehung");
mysql_query("TRUNCATE tbl_dokumententypen"); 
mfg roest
roest ist offline   Mit Zitat antworten
Alt 15.07.2009, 13:14  
Neuer Benutzer
 
Registriert seit: 13.06.2008
Beiträge: 20
Thamannta befindet sich auf einem aufstrebenden Ast
Standard

DAs mit der Schleife hatte ich vorher. bei 5000 Datensätzen dauert das aber, darum wollte ich es als eine Anweisung übergeben. Da ich auf dem Server keine Datei ablegen kann werde ich wohl oder übel wieder zu meiner Schleife zurückkeihren müssen. Da der Prozess nachts läuft ist das nicht so schlimm.
Thamannta ist offline   Mit Zitat antworten
Alt 15.07.2009, 13:27  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Die Inserts gehen schon mit einer Abfrage:
PHP-Code:
inserts = array();
foreach (
$doktypenArray as $doktyp){            
    
$inserts[] = "('$doktyp[0]', '$doktyp[1]', '$doktyp[2]', '$doktyp[3]', '$doktyp[4]')";    

sqlstr2 '
    INSERT INTO tbl_dokumententypen (
        dok_schluessel, 
        wert, 
        dok_gruppe, 
        rang, 
        anzeigen
    ) VALUE '
       
implode(',\n '$inserts);
mysql_query($sqlstr2) or exit(mysql_error()); 
@roest
Wo bleiben die Abfragen auf den Rückgabewert?
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 15.07.2009, 13:30  
Erfahrener Benutzer
 
Benutzerbild von boolean
 
Registriert seit: 06.10.2008
Beiträge: 257
PHP-Kenntnisse:
Fortgeschritten
boolean ist zur Zeit noch ein unbeschriebenes Blatt
boolean eine Nachricht über Skype™ schicken
Standard

PHP-Code:
<?php
$truncates 
= array('tbl_1''tbl_2''tbl_3');
foreach (
$truncates as $truncate) {
    
mysql_query('TRUNCATE ' $truncate ';');
}
... ist angenehmer als 200 Zeilen mit mysql_query().
__________________
true||false - www.trueorfalse.de - Rund um Software Entwicklung
boolean ist offline   Mit Zitat antworten
Alt 15.07.2009, 13:46  
Erfahrener Benutzer
 
Registriert seit: 07.06.2009
Beiträge: 107
PHP-Kenntnisse:
Anfänger
roest befindet sich auf einem aufstrebenden Ast
roest eine Nachricht über ICQ schicken roest eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von lazydog Beitrag anzeigen
@roest
Wo bleiben die Abfragen auf den Rückgabewert?
Äm ja die hab ich nicht zugeschrieben... Hab nur die schlechtere Variante von
boolean code geliefert.
Ich bin raus
roest ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Fehlermeldung MySql michi11 Datenbanken 2 12.05.2009 19:57
Where Anweisung vor GROUP BY einbinden. Kronic73 Datenbanken 6 06.03.2009 09:40
Fehlermeldung : Call to a member function foo() on a non-object Mark Taylor PHP Tipps 2008 4 14.09.2008 20:38
Fehlermeldung umbenennen Soese PHP Tipps 2007 3 13.03.2007 13:33
script läuft und funktioniert gibt aber fehlermeldung aus? Promaetheus PHP Tipps 2006 5 12.09.2006 23:42
Kann keine Session auslesen und habe keine Fehlermeldung Klaus Server, Hosting und Workstations 7 26.05.2006 12:31
Fehlermeldung PHP Tipps 2005-2 2 04.09.2005 04:04
verschachtelte if-else anweisung!? PHP Tipps 2005-2 7 04.08.2005 11:53
Ich will Fehlermeldung vermeiden. Zero.exe PHP Tipps 2005-2 2 02.08.2005 13:11
fragwürdige Fehlermeldung PHP Tipps 2005 5 19.05.2005 15:45
if anweisung innerhalb von HEREDOC-Operator möglich? PHP Tipps 2005 11 16.05.2005 17:58
Fehlermeldung im W3C Validator HTML, Usability und Barrierefreiheit 6 03.02.2005 13:47
[Erledigt] header() Fehlermeldung PHP Tipps 2005 8 14.01.2005 13:03
Script bei Strato mit Fehlermeldung, bei Netbeat ok PHP Tipps 2004-2 14 08.12.2004 11:08
[Erledigt] switch anweisung PHP-Fortgeschrittene 9 17.11.2004 16:38

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql_query truncate, sql fehlermeldungen, mysql_query mehrere befehle, mysql_query, truncate, \version for the right syntax to use near \'truncate\, sql anweisung, fehlermeldung string would be truncated abschneiden, sql anweisung fehler, sql meldung trancate, die sql eigene meldung php, php sql error meldung, rückgabewert truncate rückgabe, sql insert \eine anweisung\, http://www.php.de/datenbanken/57095-fehlermeldung-bei-sql-anweisung.html, sql anweisung fehler anzeigen lassen php, fehler meldung sql, php sql truncate, netbeat mysql backup, php fehlermeldung abgeschnitten, mysql_query mehrere prozesse

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:15 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum