WETWORK

Corlan Adnoddau Arlein Cymraeg


Defnyddio MySQL - Databas Arlein

Cynnwys: Beth yw MySQL? :: Arsefydlu a Gosod MySQL :: Iaith SQL :: Defnyddio pHp a MySQL

Beth yw MySQL?

Databas yw MySQL. Mae'n bosib eich bod wedi defnyddio Microsoft Access yn y gorffennol i ddal data. Wel, dyma databas llawer mwy pwerus sy'n siwtio cymhwysiau arlein. Caiff databasau MySQL eu defnyddio gydag iaith pHp fel arfer, er gall ieithoedd (ochr-gweinyddwr) eraill ei ddefnyddio hefyd. Mae MySQL yn rhad ac am ddim (ffynhonnell-agored) ac mae llwyth o fforymau cynhaliaeth ar ei gyfer.

Un wahaniaeth rhwng hwn a phecynnau fel Access, yw'r ffaith bob y rhyngwyneb yn sylfaenol iawn. O'r herwydd hynny, mae sawl rhyngwyneb trydydd-parti wedi ymddangos er mwyn hwyluso'r gweinyddu. Yr un mwyaf poblogaidd yw phpMyAdmin. Mae gan hwn fantais dros y lleill oherwydd ei fod yn becyn arlein ac mae modd gweinyddu eich databas o unrhywle dros y byd ar unrhyw adeg. Mae pecynnau eraill, e.e. SQLyog wedi'u hysgrifennu i gysylltu â'ch databas o'ch peiriant (trwy Windows). Mae hwn yn iawn tra eich bod yn defnyddio'r peiriannau hyn i weinyddu'ch databasau.

Mae gwefan MySQL yn cynnwys llawer o wybodaeth, gan gynnwys y llawlyfr.

ewch i mysql.com
Sut i arsefydlu a gosod MySQL

Yn debyg i arsefydlu pHp, un o'r pecynnau gorau yw XAMPP (gweler arsefydlu pHp). Bydd XAMPP yn arsefydlu MySQL a phecyn phpMyAdmin yn awtomatig.

Er mwyn gweinyddu'ch databasau yn effeithiol, bydd angen rhyngwyneb graffigol.

Mae llawer o'r pecynnau arsefydlu yn dod gyda pHpMyAdmin i weinyddu eich databasau. Yn fy marn i, mae hwn yn afiach, anodd i'w ddefnyddio ac yn hanfodol dim ond os ydych yn defnyddio cyfrifiaduron diarth i weinyddu eich databasau. Mae sawl pecyn ffynhonnell-agored ar gael, sydd yn rhoi GUI cyfarwydd. Fy hoff becyn yw SQLyog, ewch i wefan WEByog ac edrych am "SQLyog MySQL GUI - Community Edition".

Pan fydd SQLyog yn agor am y tro cyntaf, bydd yn gofyn am weinyddwr (server); enw; chyfrinair. Yn gyffredinol, dylech osod y canlynol: localhost; root; (dim - gwag).

llun o fewngofnodi sqlyog

SQLyog - mewngofnodi a chysylltu

llun o sqlyog

SQLyog - y GUI gyda llenwi data hawdd

Defnyddio iaith gymalog SQL

Os ydych erioed wedi cynhyrchu "queries" mewn pecyn fel Access, rydych wedi gweld bod modd dangos, hidlo, trefnu, cyfyngu, golygu, dileu ... data mewn tablau. Mae Access yn rhoi ffenestr neis i wneud hyn yn weledol. Fel mae'n digwydd, er mwyn deall beth yw "query" neu ymholiad, dylech ddysgu ychydig am iaith yr ymholiad, sef SQL.

Does dim llawer i iaith SQL sylfaenol. Caiff ei rhannu i mewn i gymalau. Mae'r cymal cyntaf yn penderfynu pa fath o ymholiad i redeg, e.e. dangos data, golygu data, dileu data neu ychwanegu data gan y geiriau allweddol SELECT, UPDATE, DELETE neu INSERT.

Mae'r cymalau sy'n dilyn yn amrywio yn ô y math o ddatganiad. Mae'n amhosib dangos yr holl cymhlethdod sy'n bosib gyda datganiadau aml-dabl ac ati. Dim ond cyflwyniad syml yw pwrpas y canlynol:

Cymal 1: SELECT, UPDATE, DELETE (FROM), INSERT (INTO)

SELECT * FROM defnyddwyr

Mae'r uchod yn dewis pob cofnod (ystyr * = pob maes) o dabl 'defnyddwyr'.

SELECT enw, cyfenw FROM defnyddwyr

Mae'r uchod yn dewis pob cofnod ond dim ond meysydd 'enw' a 'cyfenw' o dabl 'defnyddwyr'.

DELETE FROM defnyddwyr

Mae'r uchod yn dileu pob cofnod o dabl 'defnyddwyr'!

UPDATE defnyddwyr SET teitl = 'Mr.'

Mae'r uchod yn diweddaru maes teitl pob cofnod i 'Mr.'

INSERT INTO defnyddwyr SET enw = 'Alan', cyfenw = 'Davies', teitl = 'Mr.'

Mae'r uchod yn ychwanegu cofnod gyda'r data amlwg i dabl 'defnyddwyr'.

Cymal 2: WHERE

Yn syml mae hwn yn HIDLO cofnodion.

SELECT * FROM defnyddwyr WHERE cyfenw = 'Jones'

Mae'r uchod yn dewis dim ond cofnodion lle bod cyfenw Jones yn ymddangos o dabl 'defnyddwyr'.

SELECT enw, cyfenw FROM defnyddwyr WHERE dg < '2008-03-24'

Mae'r uchod yn dewis cofnodion (enw a chyfenw yn unig) lle bo dyddiad geni cyn '2008-03-24' o dabl 'defnyddwyr'.

DELETE FROM defnyddwyr WHERE aelod = 'DrosDro'

Mae'r uchod yn dileu pob cofnod sydd yn cynnwys y data 'DrosDro' yn y maes 'aelod.'

UPDATE defnyddwyr SET math = "aur" WHERE pwyntiau > '999'

Mae'r uchod yn diweddaru pob cofnod (maes math yn newid i 'aur') lle bod maes 'pwyntiau' wedi cyrraedd dros '999.' Gall hwn fod yn rhywbeth fel nifer y rhediadau mewn criced neu debyg.


Nid yw datganiadau INSERT yn defnyddio WHERE - ni fyddai synnwyr i hyn.

Cymal 3: ORDER BY

Yn syml mae hwn yn TREFNU cofnodion er mwyn eu dangos.

SELECT * FROM defnyddwyr ORDER BY cyfenw, enw, teitl

Mae'r uchod yn dewis pob cofnod wedi'u trefnu gan 'cyfenw' yn gyntaf, 'enw' yn ail a 'teitl' yn drydydd. Y cyflwr diofyn ar drefnu yw 0-9, a-Z, sef esgynnol. Ar gyfer trefnu'n ddisgynnol, mae angen defnyddio'r term DESC ar ôl y maes penodol.

SELECT enw, cyfenw, pwyntiau FROM defnyddwyr WHERE pwyntiau > '499' ORDER BY pwyntiau DESC;

Mae'r uchod yn rhoi enw llawn a nifer y pwyntiau'r defnyddwyr sydd wedi ennill 500 neu mwy o bwyntiau. Mae'r drefn yn dechrau gyda'r person â'r mwyaf o bwyntiau.

Nid oes angen defnyddio ORDER BY gyda DELETE nac UPDATE fel rheol.

Cymal 4: LIMIT

Os ydych am gyfyngu'r cofnodion i faint arbennig, gallwch ddefnyddio LIMIT, e.e. i greu 'Top 10.'

SELECT * FROM defnyddwyr ORDER BY pwyntiau DESC LIMIT 10

Mae'r uchod yn y deg sgoriwr uchaf yn y tabl.

Gallwn hefyd ychwanegu cymhlethdod i'r system gan fynnu ar y 6ed person i'r 13eg person:

SELECT * FROM defnyddwyr ORDER BY pwyntiau DESC LIMIT 5, 8

Mae'r uchod yn dewis pawb rhwng y chweched i'r trydydd person ar ddeg. Sut? Wel, mae cofnodion yn dechrau ar rhif 0, nid rhif 1, felly mae'r chweched person = cofnod 5. Mae'r '8' yn dweud cyfri 8 cofnod o cofnod 5 (sef 6ed i 13eg). Dyma sut mae Google ac eraill yn creu tudalennau gyda 10 cofnod (canlyniad) ar bob un: Dangos 0 i 9 (LIMIT 0,10), Dangos 10 i 19 (LIMIT 10,10), Dangos 20 i 29 (LIMIT 20,10) ayyb.

Nid oes angen defnyddio LIMIT gyda DELETE nac UPDATE fel rheol, heb law eich bod am ddileu/ddiweddaru'r 10 cyntaf ayyb.

Defnyddio pHp a MySQL

Nawr eich bod wedi dysgu ychydig o SQL sylfaenol, gallwn gyplysu hyn gyda pHp er mwyn dangos data mewn tudalen.

Yn gyntaf, mae angen dweud wrth pHp ble mae'r databas a chyflwyno'r wybodaeth gyfrinachol i ennill mynediad iddo.

$gweinyddwr = "sqlserver-4.host777.co.uk";

$db = "wetwork";

$enw = "twrch";

$cyfrinair = "trwyth";

$linc_id = mysql_connect($gweinyddwr, $enw, $cyfrinair);

mysql_select_db($db, $linc_id);

Mae'r cod uchod yn agor y databas yn barod i'w ddefnyddio. Fel rheol, ni ddylech godio eich cyfrinair i mewn i dudalen pHp, ond gwnaiff y tro am nawr.

Er mwyn "rhedeg" ymholiad:

$ymholiad = "SELECT * FROM defnyddwyr WHERE cyfenw = 'Davies'";

$cofnodion = mysql_query($ymholiad, $linc_id);

Mae'r data wedi'i storio yn y newidyn cofnodion.

Er mwyn ei echdynnu a'i ddangos, gallwch wneud y canlynol:

while($data = mysql_fetch_array($cofnodion)){

echo $data['enw'] . " " . $data['cyfenw'] . "<br />";

}

Mae'r uchod yn rhoi rhestr o enwau sydd â'r cyfenw 'Davies'.

Defnyddio data o ffurflenni

Un o'r pethau mwyaf defnyddiol wrth drin data yw defnyddio ffurflenni HTML. Mae newidynnau $_POST wedi'u trafod eisoes. Dychmygwch mae ffurflen proffil personol defnyddiwr wedi cyrraedd tudalen ac wedi gosod 3 darn o ddata:

maes 'id' = '3'; maes 'enw' = 'Rhys'; maes 'cyfenw' = 'Williams'

Gall pHp ddiweddaru'r databas, fel hyn:

//// cynnwys cod agor y databas yma ////

$q = "UPDATE defnyddwyr SET enw = '{$_POST['enw']}', cyfenw ='{$_POST['cyfenw']}' WHERE id = '{$_POST['id']}'";

$cof = mysql_query($q, $linc_id);

Oherwydd nid oes data i'w ddangos i'r sgrin, nid oes angen gwneud "echo ..."

Mae'n bwysig i ddatgan bod yr enghraifft uchod yn un syml, ond peryglus. Fel rheol, byddai sgript yn gwirio'r data sy'n cael ei fwydo i mewn i weld os yw'n ddilys. Hefyd byddai angen rhoi gwybod i'r defnyddiwr os oedd ei gais i newid ei fanylion yn llwyddiannus ai beidio.