php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.05.2009, 11:10  
Neuer Benutzer
 
Registriert seit: 15.05.2009
Beiträge: 20
sushi2k befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] mysqli->multi_query

Hallo,
ich habe folgendes Problem und zwar habe ich einen multi_query verwendet um mehrere SQL-Statements abzusetzen. Ich hab gerade länger nach dem Fehler gesucht wieso die Änderunge nicht in der DB gemacht wurde, bis ich ihn gefunden habe. Und es hat sich herausgestellt, nachdem ich die SQL-Statements einzeln in der Console abgesetzt habe, das das zweite SQL-Statement falsch war (ich hatte aus versehen BETWEEEN statt BETWEEN geschrieben
Leider hat mir das meine if Abfrage die überprüft ob der multi_query erfolgreicht ausgeführt wird nicht abgefangen (so wie ich das sehe fängt der wohl nur die erste Abfrage ab, wenn diese False ergibt).
Deswegen die Frage, wie kann ich es bewerkstelligen das die anderen Abfragen auch abgefangen werden, wenn etwas schief läuft?
Ansonsten wird die Problemsuche doch immer etwas umfangreicher...


PHP-Code:
        else if ($_POST['button'] == "deleteNodeMoveChildren")
        {
                
$specId $_POST['specId'];
                
$rgt $_POST['rgt'];
                
$lft $_POST['lft'];
                
$rootId $_POST['rootId'];

                echo 
"delete ".$specId." ".$rgt." ".$lft." ".$rootId;

                
$db=connect_db();

                
$deleteNodeMoveChildren '
                                        delete from spec_tree where lft='
.$lft.' and root_id='.$rootId.';
                                        update spec_tree set lft=lft-1, rgt=rgt-1 where lft BETWEEN '
.$lft.' AND '.$rgt.' AND root_id='.$rootId.';
                                        update spec_tree set lft=lft-2 where lft>='
.$rgt.' AND root_id='.$rootId.';
                                        update spec_tree set rgt=rgt-2 where rgt>='
.$rgt.' AND root_id='.$rootId.';
                                        delete from specification where spec_id='
.$specId.';
                                        delete from test_process where spec_id='
.$specId.';
                                        '
;

                if (!
$db->multi_query($deleteNodeMoveChildren))
                {
                         echo (
mysql_error().'<hr />'.$deleteNodeMoveChildren.'<hr />');
                }

                
close_db($db);

        } 
sushi2k ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 15.05.2009, 11:30  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:


Rückgabewerte


Returns FALSE if the first statement failed. To retrieve subsequent errors from other statements you have to call mysqli_next_result() first.
Ausserdem wird dir mysql_error() nichts ausgeben, wenn du mit mysqli arbeitest.
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 15.05.2009, 11:49  
Neuer Benutzer
 
Registriert seit: 15.05.2009
Beiträge: 20
sushi2k befindet sich auf einem aufstrebenden Ast
Standard

Dankeschön, da hätte ich die Doku wohl aufmerksamer lesen sollen
sushi2k ist offline   Mit Zitat antworten
Alt 15.05.2009, 11:54  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

Dann das Thema bitte als [Erledigt] (Link oben) markieren. Danke!
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline   Mit Zitat antworten
Alt 15.05.2009, 13:16  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Wieso verwendest du überhaupt multi_query? Du könntest ja genauso einfach einen normalen Query verwenden für jede Abfrage.

Wenn du damit erreichen möchtest dass ALLE Befehle ausgeführt werden und wenn einer schief geht keiner ausgeführt wird dann musst du Transaktionen verwenden.
Flor1an 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
MySQLi und Prepared Statements #Avedo Datenbanken 5 24.03.2010 17:39
MySQLi: bind_param & LIKE snatch-ic Datenbanken 3 22.12.2009 23:09
Schützt mysqli vor SQL-Injections? snatch-ic Datenbanken 6 08.08.2009 15:49
MySQLi - mehrere Queries AndreeThe2nd PHP Tipps 2009 1 13.05.2009 20:24
MySQLi Probleme :( ViperNeo PHP Tipps 2009 3 03.04.2009 01:44
Javasript, PHP. mysqli nicht erlauben oma420 PHP Tipps 2009 12 06.03.2009 22:01
mysqli ersetzen schlurpsel Datenbanken 4 23.11.2008 19:40
Mysql LoginScriptzu MySqli LoginScript lithium PHP Tipps 2008 27 17.11.2008 19:48
[Erledigt] Problem mit MySQLi Login + Session Raito PHP Tipps 2008 7 29.07.2008 22:49
mysqli bind param notyyy PHP Tipps 2008 3 20.05.2008 18:26
PHP5 -> MySQLi erben snatch-ic PHP Tipps 2007 1 08.02.2007 18:05
mysqli als Objekt CC84 PHP-Fortgeschrittene 31 11.05.2006 20:39
MySQL vs. MySQLi Shade PHP Tipps 2007 4 05.11.2005 15:22
Wie verwende ich mysqli? bicpi PHP Tipps 2005-2 5 03.08.2005 22:54
Kein mysqli Objekt möglich?! Datenbanken 8 09.06.2005 18:17

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
multi_query update, multi_query, mysqli multi_query, php mysqli multi_query, mysqli multi query abfrage, mysqli mehrere update, mysqli befehle, multi_query probleme, mit einer abfrage mehrere updates mysqli, php mysqli delete, multi_query oder mehrere query, php mysqli mehrere befehle, update lft=lft-2 problem, einfache mysqli multi_query, mysqli mehrere delete, mysqli multi_query fehler, mysqli mehrere befehle, mysqli prepare multi_query, php multi_query, mysqli multi_query update php

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