MySQL'i SphereServer'ınız için kullanmak için önce MySQL'i bilgisayarınıza yüklemeniz gerekir. MySQL Başvuru Kılavuzu'nda MySQL'in nasıl kurulacağına dair bir eğitim bulabilirsiniz.
MySQL'i kurduktan sonra, MySQL sunucunuza bağlanmak için Sphere'i yapılandırmanız gerekecektir. Sphere.ini açın ve "// MySql yapılandırması" ile başlayan bölümü görene kadar aşağı kaydırın. Tüm temel MySQL bilgilerinizi dolduracağınız yer burasıdır.
Bu satırları sunucunuza karşılık gelen doğru bilgilerle değiştirin:
MySql=1 // MySQL'in etkinleştirilmesi için bu değer 1 olarak ayarlanmalıdır.
MySqlHost=localhost // MySQL db ana bilgisayarınızın adresi.
MySqlUser=root // Bunu MySQL kullanıcı adınızla değiştirin.
MySqlPassword=password // Bunu MySQL parolanız ile değiştirin.
MySqlDatabase=sphere // Bu, MySQL veritabanınızın adıdır.Ayrıca komut dosyaları klasörünüze gitmeniz ve sphere_serv_triggers.scp dosyasını açmanız gerekir. Şimdi f_onserver_start işlevin tanımını bulmanız ve aşağıdaki satırı işlevin içine yerleştirmeniz gerekir:DB.CONNECTBu, Sphere'in MySQL veritabanına bağlandığından emin olacaktır. Bundan sonra aşağıdaki satırları ekleyerek bağlı olduğundan emin olmak için bazı hata kontrolleri de ekleyebilirsiniz:IF (<DB.CONNECTED>)
SERV.LOG MySQL debug: MySQL successfully connected!
ELSE
SERV.LOG MySQL debug: MySQL not connected!
ENDIFKonsolunuzda "MySQL hata ayıklama: MySQL bağlı değil!" satırını bulursanız, bu, Sphere'in bağlanamadığı ve muhtemelen Sphere.ini yapılandırmanızda veya MySQL kurulumunuzda bir hata olduğu anlamına gelir.Sphere COMMANDS
MySQL, bilmeniz gereken bir dizi temel komuta sahiptir. Sphere'da, bu komutlar kullanımda biraz farklılık gösterir, çünkü Sphere komutlarıyla birlikte kullanılmaları gerekir.
Sphere'da, tüm MySQL komutları DB nesnesiyle başlayacaktır. Veritabanı nesnesinin tüm özelliklerinin ve işlevlerinin tam listesini Referans Özeti'nin Veritabanı nesnesi sayfasında görüntüleyebilirsiniz.
DB Özellikleri
Syntax: <DB.<property>>CONNECTED Sunucu MySQL'e bağlıysa 1, bağlı değilse 0 döndürür.
ROW.NUMROWS
Son sorgu tarafından döndürülen satır sayısı.
ROW.NUMCOLS
Son sorgu tarafından döndürülen sütun sayısı.
ROW.*
Son sorgu tarafından döndürülen tüm sütunların listesi. Hem sütun adları hem de numaraları listeye kaydedilir, böylece dizinleri (1,2,3) veya sütun adlarını (kimlik, ad vb.) kullanarak bunlara başvurabilirsiniz.
DB Yöntemleri
Syntax: DB.<method>CLOSE MySQL sunucusuyla bağlantı kesilir.
CONNECT
Sphere.ini'da sağlanan bilgileri kullanarak MySQL'e bağlanır.
EXECUTE
Verilen MySQL komutlarını herhangi bir bilgi döndürmeden çalıştırır.
QUERY
MySQL veritabanından ROW.* özelliklerini doldurarak bilgi döndürür.
Tablo Oluşturma ve Veri Ekleme
Bu bölüm, MySQL + Sphere dünyasına başlamanız için sadece birkaç temel örnektir.
MySQL ile başlamak için yapmanız gereken şey, verilerinizi koymak için bir tablo oluşturmaktır. Aşağıda, daha sonra bir açıklama ile birlikte bir örnek verilmiştir.
DB.EXECUTE "create table demo (id int unsigned not null auto_increment primary key,account varchar(15), name varchar(15),guild text,kills int,fame int,karma int);" DB. EXECUTE Bu sadece Sphere'in MySQL'de bir ifadeyi yürütme komutudur.
Tablo demosu
oluşturBu, MySQL'e ekteki bilgilerle 'demo' adlı bir tablo oluşturmasını söyler.
id int unsigned not null auto_increment birincil anahtar
Bu, girişin kimlik numarasını tutan 'id' adlı bir sütun oluşturur. Kimlik numarası için gerçekten sadece satır numarasını kullanabilirsiniz, ancak bu, parçanız aracılığıyla bir PHP web sitesi yapmak istiyorsanız, PHP aracılığıyla erişmemize izin verir (PHP öğreticileri daha sonra gelecektir). 'Boş auto_increment değil' kısmı, yeni bir satır eklediğinizde, id'yi yalnızca 'NULL' olarak ayarlayacağınız ve MySQL'in bunu bir sonraki kimlik numarasıyla değiştireceği anlamına gelir. Yani 3 satırınız varsa ve yeni bir tane eklerseniz, MySQL bunu otomatik olarak id '4' olarak ayarlayacaktır.
Hesap Varchar(15)
varchar(15), 15 veya daha az karakterden oluşan bir metin girişi olabileceği anlamına gelir. Çoğu hesap yalnızca birkaç karakterden oluşur, bu nedenle hiçbir zaman 15'ten uzun olmamalıdır.
İsim: Varchar(15)
'account varchar(15)' ile aynı.
Lonca Metni
Loncanın adı da buradan geliyor. Bazı lonca isimleri oldukça uzun olabileceğinden, bunu basitçe "metin" olarak ayarladım çünkü sonsuz uzunlukta olmasına izin veriyor.
int'yi öldürürBir oyuncunun sahip olduğu öldürme sayısını tutmak için yalnızca bir tamsayı sütunu.
Şöhret int Bir oyuncunun sahip olduğu şöhreti elinde tutmak için kullanılan bir tamsayı sütunu.
karma int Bir oyuncunun sahip olduğu karmayı tutmak için bir tamsayı sütunu.
Artık alanlar açıklandığına göre, tabloya bilgi eklememiz gerekiyor. Bunu yapmak için aşağıdaki komutu kullanacağız:
DB.EXECUTE "INSERT INTO demo(id, account, guild, kills, fame, karma) values (NULL,<ACCOUNT>,<MEMORYFINDTYPE.MEMORY_GUILD.NAME>,<KILLS>,<FAME>,<KARMA>);" Basit MySQL ve PHP Çıktı Eğitimi Giriş
Bu makale, PHP aracılığıyla parçanızın web sayfasına çıktı oluşturmak için Sphere'in MySQL yeteneklerinin nasıl kullanılacağını açıklamak için bir öğretici olarak tasarlanmıştır.
Tabloyu Oluştur
Yapmamız gereken ilk şey, bilgilerimizi saklamak için kullanacağımız tabloyu oluşturmaktır. Bu tablo, örnek sistemimiz için aşağıdaki bilgileri saklayacaktır: eklenen satırın kimlik numarasını saklamak için kullanılan 'id' tamsayısı; cari hesap adını saklamak için kullanılan 30 uzunluğundaki varchar 'hesabı'; mevcut oyuncu adını saklamak için kullanılan 30 uzunluğundaki varchar 'adı'; mevcut loncanın adını saklamak için kullanılan 'Lonca' metin bloğu; oyuncunun sahip olduğu öldürme miktarını depolamak için kullanılan 'öldürme' tamsayısı; mevcut oyuncunun sahip olduğu şöhret miktarını saklamak için kullanılan 'şöhret' tamsayısı; ve mevcut oyuncunun sahip olduğu karma miktarını depolamak için kullanılan Interger 'Karma'. Bu tabloyu oluşturmak için kullandığım kod aşağıdaki gibidir:
[FUNCTION create_table]
DB.EXECUTE "create table demo (id int unsigned not null auto_increment primary key, account varchar(15), name varchar(15), guild text, kills int, fame int, karma int);" Verileri Ekleyin Yapmamız gereken bir sonraki şey, az önce oluşturduğumuz tabloya bazı bilgiler eklemek. Aşağıdaki işlev, kendi karakterinizle ilgili verileri tabloya ekleyecektir:
[FUNCTION insert_info]
DB.EXECUTE "insert into demo (id, account, name, guild, kills, fame, karma) values (NULL, '<ACCOUNT>', '<NAME>', '<MEMORYFINDTYPE.memory_guild.LINK.NAME>', <KILLS>, <FAME>, <KARMA>);" Verileri Okuyun Artık MySQL tablomuzda bazı bilgilere sahip olduğumuza göre, tablodaki bilgileri okumak ve görüntülemek için bir PHP dosyası oluşturmamız gerekiyor. sphere_info.php adlı bir dosya oluşturun ve ardından bu dosyaya aşağıdaki kodu ekleyin.
<html>
<head>
<title>sphere_info</title>
</head>
<body>
<?php
//fill in your mysql information here
$hostname = "localhost";
$username = "root";
$password = "password";
$database = "database_name";
// tablename demosu bu eğitim için kullanıldı. bunu tablonun gerçek adıyla değiştirin.
$table = "demo";
// mysql'e bağlanır ve ilgili veritabanını seçer.
mysql_connect($hostname,$username,$password);
mysql_select_db($database);
// verilen tablo adındaki tüm satırları seçer.
$query = "select * from $table";
$result = mysql_query($query);
// bu, tabloda bilgi olduğundan emin olur. eğer yoksa, çıktı olmayacaktır.
if (mysql_num_rows($result) > 0)
{
// bu $query_data adında bir değişken oluşturur ve ilk satırdaki bilgilerle doldurur.
// bir while deyimi kullanarak, bu işlem tablonun içerdiği her satır için tekrarlanacaktır.
while ($query_data = mysql_fetch_array($result))
{
// satırdaki her farklı sütun için yeni değişkenler oluşturuyoruz.
$id = $query_data['id'];
$account = $query_data['account'];
$name = $query_data['name'];
$guild = $query_data['guild'];
$kills = $query_data['kills'];
$fame = $query_data['fame'];
$karma = $query_data['karma'];
// çıktınızı html kullanarak biçimlendirebileceğiniz yer burasıdır.
$echo = "$id - $account - $name - $guild - $kills - $fame - $karma<br>";
// bu gerçek çıktıyı gösterir.
echo $echo;
}
}
?>
</body>
</html> Çıktı Tabloyu okumak için bu yöntemi kullanarak aldığımız çıktı aşağıdaki gibi görünmelidir:
1 - god - God - PWNAGE - 1 - 1000 - 1000
2 - warangel - WarAngel - 4HM - 15 - 1000 - 5000
Son
Tabloya yazma ve PHP kullanarak okuma yöntemi, veri depolama ve alma sistemleri açısından hayal edebileceğiniz hemen hemen her şeyi oluşturmak için kullanılabilir. Bunun gibi bir şey, parça yöneticileriniz için çevrimiçi etkileşimli bir kontrol paneli, çevrimiçi puanları gösteren bir düello sistemi veya herhangi bir sayıda şey yapmak için birleştirilebilir. Bir iradenin olduğu yerde bir yol vardır ve bu makale ile artık her ikisine de sahipsiniz.

