php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.11.2011, 17:43  
Neuer Benutzer
 
Registriert seit: 05.09.2011
Beiträge: 28
PHP-Kenntnisse:
Anfänger
Halvalon befindet sich auf einem aufstrebenden Ast
Standard SQL-Fehler nach Serverupdate auf neue PHP-Version

Guten Abend verehrte Community,

ich habe meinen MS Windows Server auf die aktuelle PHP-Version geupdatet. Anschließend bekomme ich folgende Fehlermeldung auf der dort befindlichen Website.
Zitat:
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 '.$projekte[$i]['id'].''' at line 1
Der entsprechend Quellcode ist:
PHP-Code:
<?
                            
for($i 0$i sizeof($projekte); $i++){
                                if(
$_REQUEST['projekt'] == $projekte[$i]['id']) echo '<option value="'.$projekte[$i]['id'].'" selected="selected">'.$projekte[$i]['name'].'</option>';
                                else echo 
'<option value="'.$projekte[$i]['id'].'">'.$projekte[$i]['name'].'</option>';
                            }                    
                            if(
$_REQUEST['projekt'] == 'all') echo '<option value="all" selected="selected">Gesamt&uuml;bersicht</option>';
                            else echo 
'<option value="all">Gesamt&uuml;bersicht</option>';
                        
?>
abgeschickt wird es über
PHP-Code:
get 
Ich weiß nicht wo in der Syntax der Fehler ist. Bitte gebt mir Hilfestellungen
Halvalon ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 09.11.2011, 17:48  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Der entsprechend Quellcode ist:
Nein, ist er nicht. Ganz klar beruft sich die Meldung auf einen Datenbankzugriff. Die Meldung ist eine DB-Meldung, keine PHP-Meldung!!
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 10.11.2011, 07:59  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

sie entsteht aber wohl durch falsche Stringverkettung in PHP - offensichtlich kommt bei der SQL-Abfrage der Variablenname an, nicht der Inhalt der Variablen ... Nimm doch mal nen Editor zur Hand mit anständiger Syntaxhervorhebung (kostenlos Notepad++), da solltest du es anhand der Farben selbst finden - und verlasse dich nicht aufs automatische Einfügen von Variablen bei Double-Quotes

Im übrigen sieht der Fehler aber "so" aus, den musst du eigentlich auch mit der alten PHP-Version bekommen haben. Evtl hast du beim überarbeiten des Quellcodes ein paar Quotes zuviel gelöscht oder so etwas.
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 10.11.2011, 09:45  
Neuer Benutzer
 
Registriert seit: 05.09.2011
Beiträge: 28
PHP-Kenntnisse:
Anfänger
Halvalon befindet sich auf einem aufstrebenden Ast
Standard

Das Problem tritt bei SQL auf, dass steht ja auch eindeutig da. (Deswegen bin ich auch im Forum-Thread "Datenbanken & SQL") Durch die Informationen die ich bekam, ist es aber durch die Umstellung auf die neue PHP-Version aufgetreten. Darum vermute ich auch, dass bei der Übergabe von PHP zu SQL ein Problem ensteht.

Ich habe nachgelesen und weiß nicht was "Quotes" sind. Durch den Hinweis von eagle275 beschäftige ich mich mit der ""-Klammerung.

Ich versuche jetzt den Quellcode ohne unnötige "" erfolgreich zu testen. Leider versuche ich es nur weil ich zwar weiß was das Problem ist ich aber nicht weiß weshalb es auftritt.

Mein Quellcode überarbeitet:
PHP-Code:
for($i 0$i sizeof($projekte); $i++){
                                if(
$_REQUEST['projekt'] == $projekte[$i]['id']) echo '<option value='.$projekte[$i]['id'].' selected=selected>'.$projekte[$i]['name'].'</option>';
                                else echo 
'<option value='.$projekte[$i]['id'].'>'.$projekte[$i]['name'].'</option>';
                            }                    
                            if(
$_REQUEST['projekt'] == 'all') echo '<option value=all selected=selected>Gesamt&uuml;bersicht</option>';
                            else echo 
'<option value=all>Gesamt&uuml;bersicht</option>'
-> danke für die bisherigen Ansätze
Halvalon ist offline   Mit Zitat antworten
Alt 10.11.2011, 10:08  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

halvalon - das ist IMMER NOCH NICHT der richtige Quälcode ...

bitte zeige die Zeile(n), wo die Abfrage gebaut und zur Datenbank geschickt wird - du zeigst immer nur den Teil eines Formulares, das ein Select-Element befüllt ...

und Quotes
Code:
' = Single-Quote
" = Double-Quote
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 22.11.2011, 16:20  
Neuer Benutzer
 
Registriert seit: 05.09.2011
Beiträge: 28
PHP-Kenntnisse:
Anfänger
Halvalon befindet sich auf einem aufstrebenden Ast
Standard

Entschuldigung das ich mich so lange nicht meldete. Das mit den Quotes war mir zwar klar, wusste aber nicht, dass sie so genannt werden. -> Danke

Ich habe jetzt die Zeilen welche an die Datenbank mal gepostet;
PHP-Code:
function projektAusgeben($id$jahr){
        if(
$id != 'all'){
            
$query "SELECT * FROM projekte WHERE id = '".$id."'";
            
$projekt $this->queryDB_select($query);
        }
        else 
$projekt[0]['name'] = 'Gesamt&uuml;bersicht';
        echo
'
            <div class="boxheader">
                PROJEKT: '
.$projekt[0]['name'].' '.$jahr.'
            </div>
            <div class="contentbox" id="projekt'
.$i.'">';

        if(!isset(
$bewilligtgesamt['verbrauchsmaterial'])) $bewilligtgesamt['verbrauchsmaterial'] = 0;
        if(!isset(
$bewilligtgesamt['sonstigekosten'])) $bewilligtgesamt['sonstigekosten'] = 0;

        for(
$j=0$j <= 2$j++){
            
$bewilligt = array();
            
$ausgaben = array();
            
$ausgaben_verbrauchsmaterial '0';
            
$ausgaben_sonstigekosten '0';
            
$festlegungen_verbrauchsmaterial '0';
            
$festlegungen_sonstigekosten '0';
            
            switch(
$j){
                case 
0$uni '123'; break;
                case 
1$uni '456'; break;
                case 
2$uni '789'; break;
            }
            
            if(
$id != 'all'){
                
$query "SELECT * FROM bewilligt WHERE projekt = ".$id." AND uni = '".$uni."' AND jahr= '".$jahr."'";
                
$bewilligt $this->queryDB_select($query);
            }
            else{
                
$query "SELECT * FROM bewilligt WHERE uni = '".$uni."' AND jahr= '".$jahr."'";
                
$bewilligt $this->queryDB_select($query);
            } 
Wobei ich mir unsicher bin ob es an den Quotes liegt aber ich noch nicht eine Idee habe woran es liegt. Bitte helft mir.

Viele Grüße
Halvalon ist offline   Mit Zitat antworten
Alt 23.11.2011, 14:21  
Neuer Benutzer
 
Registriert seit: 05.09.2011
Beiträge: 28
PHP-Kenntnisse:
Anfänger
Halvalon befindet sich auf einem aufstrebenden Ast
Standard

Ich habe gelesen, dass in neueren PHP-Versionen Magic-Quotes wieder entfernt wurden.

siehe Quelle:
http://phpforum.de/forum/showthread.php?t=217421

Ob das die Lösung wäre?
Halvalon ist offline   Mit Zitat antworten
Alt 23.11.2011, 15:27  
Neuer Benutzer
 
Registriert seit: 18.08.2009
Beiträge: 20
PHP-Kenntnisse:
Fortgeschritten
anbei befindet sich auf einem aufstrebenden Ast
Standard

$uni und $jahr sind korrekt. $id muss du nur so anpassen.
PHP-Code:
$query "SELECT * FROM bewilligt WHERE projekt = '".$id."' AND uni = '".$uni."' AND jahr= '".$jahr."';"
anbei ist offline   Mit Zitat antworten
Alt 23.11.2011, 15:58  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.019
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von anbei Beitrag anzeigen
$uni und $jahr sind korrekt. $id muss du nur so anpassen.
PHP-Code:
$query "SELECT * FROM bewilligt WHERE projekt = '".$id."' AND uni = '".$uni."' AND jahr= '".$jahr."';"
Und wer sagt dir, dass projekt kein integer ist?


@Eröffner

Ich frag mal anders: Ist dir eigentlich klar, was dir die Fehlermeldung sagen möchte?

Schon mal die $query Variablen ausgegeben bevor du sie an die DB schickst?
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 23.11.2011, 16:41  
Neuer Benutzer
 
Registriert seit: 18.08.2009
Beiträge: 20
PHP-Kenntnisse:
Fortgeschritten
anbei befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von mquadrat Beitrag anzeigen
Und wer sagt dir, dass projekt kein integer ist?
Stimmt.
Zitat:
Zitat von mquadrat Beitrag anzeigen
Schon mal die $query Variablen ausgegeben bevor du sie an die DB schickst?
Stimmt, das macht die Fehlersuche deutlich einfacher.
anbei 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
Headers and client library minor version mismatch Raidri Server, Hosting und Workstations 3 11.04.2010 20:24
neue PHP version und Fehler php10 Server, Hosting und Workstations 1 26.03.2010 21:23
OpenID und XAMPP nanatsusaia PHP Tipps 2009 2 20.11.2009 13:21
[Erledigt] vista, windows update Fehler 80070422 Screeze Off-Topic Diskussionen 3 23.09.2009 18:24
PHP-Safe-Mode Configuration mit Xampp - Scripts laufen nicht DerN8WaechterX PHP Tipps 2006 7 27.01.2006 00:41
MySQL Fehler in Version 4.0.15 maccoder Datenbanken 16 21.11.2005 14:59
[Erledigt] Neue Seite anfangen, finde dem Fehler net PHP Tipps 2005 10 26.04.2005 17:15
[Erledigt] Error Mail() function PHP Tipps 2005 3 14.04.2005 03:32
Fehlermeldung - aber kein fehler... Tschuu HTML, Usability und Barrierefreiheit 16 14.03.2005 15:56
Update auf PHP Version 4.3.10 Sablot XML gibt jetzt Fehler a tekknotrip PHP Tipps 2005 1 23.02.2005 16:14
[Erledigt] mysql fehler PHP Tipps 2004 2 03.11.2004 00:32
neue xampp version php umschalter kid01 Server, Hosting und Workstations 7 18.10.2004 22:18
Fehler: Neue InetPräs. Server4you Off-Topic Diskussionen 3 12.10.2004 09:22
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
umstellen auf neue php-version

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:25 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