PL/DbExec

From Multi Theft Auto: Wiki
Jump to navigation Jump to search


Ta funkcja wykonuje zapytanie do bazy danych przy użyciu podanego połączenia. Żaden wynik nie jest zwracany.

[[{{{image}}}|link=|]] Wskazówka: Komenda serwerowa debugdb 2 wyświetli szczegółowe informacje o każdym zapytaniu do pliku dziennika (zazwyczaj logs/db.log)

Syntax

bool dbExec ( element polaczenie_z_baza_danych, string zapytanie [, var argument1 [, var argument2 ...]] )

OOP Syntax Help! I don't understand this!

Method: connection:exec(...)

Wymagane parametry

  • polaczenie_z_baza_danych: Element połączenia z bazą danych wcześniej zwrócony z funkcji DbConnect
  • zapytanie: Zapytanie SQL. Pozycje, w których zostaną wstawione wartości są oznaczone ?

Opcjonalne parametry

  • argumentX: Zmienna liczba parametrów. Muszą to być łańcuchy lub liczby - ważne jest, aby upewnić się, że są one odpowiedniego typu. Ponadto liczba przekazanych parametrów musi być równa liczbie znaków ? w ciągu zapytania.

Parametry łańcuchowe (string) są automatycznie cytowane i zmieniane w razie potrzeby. (Jeśli nie chcesz, aby ciąg był cytowany, użyj ??) Upewnij się, że liczby mają format liczbowy, ponieważ liczba ciągu jest traktowana inaczej.

Zwraca

Zwraca true (prawda) chyba że połączenie jest nieprawidłowe, w takim przypadku zwraca false (fałsz).

Przykład

Ten przykładowy kod wykona zapytanie INSERT:

dbExec( connection, "INSERT INTO nazwa_tabeli VALUES (?,?,?)", "wartosc1", "wartosc2", 3 )

Ten przykład pokazuje, jak używać znaku ? dla części zapytania, które nie są wartościami kolumn:

dbExec( connection, "UPDATE ?? SET ??=?", nazwaTabeli, nazwaKolumny, wartoscKolumny )


Uwaga: Zazwyczaj dobrą praktyką jest otaczanie nazw tabel i kolumn znakami odwrotnymi (`), jeśli zawierają spacje lub słowa kluczowe SQL (i dlatego powodują błędy składniowe). Jest to szczególnie ważne w przypadku używania zmiennych dla nazw tabel i kolumn, ponieważ potencjalne problemy mogą nie być widoczne podczas pierwszego pisania skryptu.

W tym przykładzie pokazano, jak używać znaków odwrotnych (`) i ?? dla części zapytania, które nie są wartościami kolumn:

dbExec( connection, "UPDATE `??` SET `??`=?", nazwaTabeli, nazwaKolumny, wartoscKolumny )

Wymagania

Minimalna wersja obsługiwanego serwera 1.1.1-9.03341
Minimalna wersja obsługiwanego klienta n/a

Uwaga: Korzystanie z tej funkcji wymaga, aby zasób miał powyższą minimalną wersję zadeklarowaną w sekcji meta.xml <min_mta_version>. np. <min_mta_version server="1.1.1-9.03341" />

Zobacz także