![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 10.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam taki problem: chce polaczyc zapytanie insert i delte w jednym (aby nie wykonywac 2 zapytan - chce zmniejszych ilosc zapytan): i mam:
Tylko cos to mi nie chce dzialac... Blad jaki sie wyswietla: <b>Fatal error</b>: Call to a member function bind_param() I zastanawiam sie czy istnieje mozliwosc polaczenia 2 zapytan takich w jedno za pomoca mysqli? Jesli tak prosilbym o podanie przykladu. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 50 Dołączył: 28.10.2006 Skąd: Radom Ostrzeżenie: (0%) ![]() ![]() |
Z tego co wiem to w MySQL nie ma możliwości wykonywania dwóch zapytań jednocześnie. W Twoim przypadku może przydać się: http://dev.mysql.com/doc/refman/5.0/en/replace.html
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 171 Pomógł: 18 Dołączył: 13.03.2009 Skąd: lublin Ostrzeżenie: (0%) ![]() ![]() |
zrób sobie procedurę
http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 403 Pomógł: 68 Dołączył: 20.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
aby nie wykonywac 2 zapytan - chce zmniejszych ilosc zapytan delete from users_email where user_id='$_SESSION[user_id]';insert into users_email(user_id,email,code,status,date) Nie wiem czy zdajesz sobie z tego sprawę ale to że zapiszesz w jednej linii komendy, to nie oznacza że nie wykonujesz dwóch zapytań. Poza tym tak na "chłopski rozum" to jak by to miało działać?? pisząc tak nie jesteś wstanie uzyskać odpowiedzi bazy mysql (bo jak wystąpi błąd to skąd wiesz w którym zapytaniu?), a przez to nie wyłapiesz poprawnie błędu. Jak chcesz optymalizować komunikację z DB to zacznij od optymalizacji takich kwiatków w kodzie, które np. wykonują 2 selecty a dało by się jednym. -------------------- Pomogłem? wyraź to i kliknij "Pomógł"
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 1 Dołączył: 1.03.2008 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 508 Pomógł: 75 Dołączył: 2.11.2005 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
UNION to łączenie kilku tablic z wynikami z SQLa. Tu nie pomoże.
MySQL nie pozwala na wykonanie dwóch osobnych zapytań do bazy danych za jednym razem (jednokrotne użycie mysql(i)_query albo przez PDO). Jak prachwal wspomniał, możesz zrobić sobie procedurę, ale nie czyni to kodu bardziej wydajnym. Zostaje wykonanie dwóch osobnych zapytań. Jednak w Twoim przypadku wygląda na to, że możesz użyć UPDATE zamiast usuwać i tworzyć nowy rekord o, podejrzewam, tym samym kluczu. Może jest w tym jakiś ukryty cel - nie wiem. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 1 Dołączył: 1.03.2008 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Na przyszłość będę wiedział franki01
![]() |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 10.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
UNION to łączenie kilku tablic z wynikami z SQLa. Tu nie pomoże. MySQL nie pozwala na wykonanie dwóch osobnych zapytań do bazy danych za jednym razem (jednokrotne użycie mysql(i)_query albo przez PDO). Jak prachwal wspomniał, możesz zrobić sobie procedurę, ale nie czyni to kodu bardziej wydajnym. Zostaje wykonanie dwóch osobnych zapytań. Jednak w Twoim przypadku wygląda na to, że możesz użyć UPDATE zamiast usuwać i tworzyć nowy rekord o, podejrzewam, tym samym kluczu. Może jest w tym jakiś ukryty cel - nie wiem. To byl przyklad nie koniecznie ma zwiazego z rzeczywistoscia - wiec tu nie chodzi o sens zapytan:P Hmm co do laczenia 2 selectow w 1 tak robie (pisze nowa aplikacje wiec chce zrobic wszystko jak najbardziej wydajne). Chodzilo mi tylko o poprawienie wydajnosci nie o kolejne bezsensowne procedury. Jesli sie nie da trudno - przynajmniej wiem teraz ze nie moge tego bardziej zoptymalizowac - thx za pomoc. pozdrawiam |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 17:22 |