THE ORB
Studio başlatılıyor

No such export fetchAll / execute in resource mysql-async

Bir script, kurulu olandan daha eski bir veritabanı sistemi için yazılmış.

groupsO script hiçbir şey yapmıyorpersonBunu düzeltebilirsin

Önce şunu yap

Ya script'in beklediği sürümü kur, ya da satıcıdan güncellenmiş bir tane iste.

bug_reportBunun yerine tüm konsolunu yapıştır

Ne anlama gelir

Bir script, kurulu olandan farklı bir veritabanı kaynağının API'sini çağırıyor. FiveM üçünden geçti — mysql-async, sonra ghmattimysql, şimdi oxmysql — ve biri için yazılmış script'ler, diğerlerinde olmayan export'ları çağırır.

Neden olur

Ne sıklıkla doğru cevap olduğuna göre sıralı.

  1. 1

    Script mysql-async istiyor, sen oxmysql çalıştırıyorsun

    oxmysql bir uyumluluk katmanıyla gelir, ama etkinleştirilmesi gerekir ve her şeyi kapsamaz.

  2. 2

    Eski kaynak kurulu ama başlatılmamış

    Klasörde var, server.cfg'de yok.

  3. 3

    Aynı anda iki veritabanı kaynağı

    İkisi de kurulu, her biri yarım yapılandırılmış, ve script'ler ikisine bölünmüş.

  4. 4

    Hiç var olmamış bir export

    fetchSync ghmattimysql'indi; fetchAll mysql-async'indi. Hiçbiri oxmysql'in kendi API'si değil.

Hangisinin seninki olduğu nasıl anlaşılır

print(GetResourceState('oxmysql'), GetResourceState('mysql-async'))

Sonra başarısız olan script'te hangi API'nin kullanıldığını ara:

grep -rn "MySQL\.\|exports\['mysql-async'\]\|exports.oxmysql" my-script/

Nereye bakmalı

Script'in veritabanı çağrıları, ve server.cfg'nin hangi veritabanı kaynağını başlattığı.

Nasıl düzeltilir

oxmysql'de standartlaş ve eski script'ler için uyumluluk katmanını aç:

# server.cfg
set mysql_connection_string "mysql://user:pass@host/db?charset=utf8mb4"
ensure oxmysql

# yalnızca hâlâ eski API'ler için yazılmış script'ler çalıştırıyorsan
set oxmysql_slow_query_warning 200

Düzenleyebildiğin bir script için çağrıyı taşı:

-- mysql-async
MySQL.Async.fetchAll('SELECT * FROM users WHERE identifier = @id', { ['@id'] = id }, cb)

-- oxmysql
MySQL.query('SELECT * FROM users WHERE identifier = ?', { id }, cb)

Hâlâ kendi kodunda mı takıldın?

Bu sayfa, bu hatanın genelde ne anlama geldiğini anlatır. Konsolunu Server Fixer'a yapıştır; içindeki her şeyi sıraya dizer ve önce ne yapman gerektiğini söyler. Kendin uğraşmak istemiyorsan ORBIE script'i onarır ve kaynağı sunucuna atmaya hazır geri verir.

bug_reportServer Fixer'ı aç

Bu tür bir hata için Script Optimizer buna yol açan sorgu kalıplarını yakalar.

Bununla birlikte gelen hatalar