ugrás a tartalomhoz

Mit kell tartalmaznia egy .sql fájlnak azon túl,hogy CREATE TABLE meg INSERT INTO?

lillilla · 2014. Már. 18. (K), 22.28
Ha én localhostról phpmyadminból kiexportálok egy .sql fájlt (amiben táblák vannak mintaadatokkal) mit kell tartalmaznia ahhoz, hogy ha egy tárhelyen az install.php-vel bekérem a fájlt,rendesen lefusson? Addig rendben,hogy van benne CREATE TABLE meg INSERT INTO,de látok benne még ezen kívül pár olyan dolgot,amit nem tudom,hogy szükséges-e,vagy elhagyható. Hol találok erről leírást?

php részlet:
$file ='data.sql';
   if ($sql = file($file)) {
   $query = '';
   foreach($sql as $line) {
    $tsl = trim($line);
   if (($sql != '') && (substr($tsl, 0, 2) != "--") && (substr($tsl, 0, 1) != '#')) {
   $query .= $line;
  
   if (preg_match('/;\s*$/', $line)) {
  
    mysql_query($query, $connection);
    $err = mysql_error();
    if (!empty($err))
      break;
   $query = '';
   }
 
1

Dokumentáció

Poetro · 2014. Már. 18. (K), 23.03
Az illető adatbázis motor dokumentációja segíteni fog a parancsok értelmezésében. Az, hogy melyek elhagyhatók csak elemzésük után dönthető el.
2

Ha saját cms telepítőhöz van

lillilla · 2014. Már. 19. (Sze), 00.19
Ha saját cms telepítőhöz van szükségem rá,akkor minden adatbázismotort végig kell néznem. Hol találok ilyen listát? Milyen kulcsszavakkal keressek egyáltalán választ a problémámra?
3

Kedves Lillilla! Szerintem

tisch.david · 2014. Már. 19. (Sze), 10.00
Kedves Lillilla!

Szerintem specifikálni kell azokat az adatbáziskezelő típusokat, amiket a CMS támogat, és azok kezelésére fel kell készítened a CMS-t. Nem csak a .sql fájlokat kell szétválasztanod SQL nyelvjárások szerint, de a kódban futtatott lekérdezések esetén is szükség lehet erre.
Ha valóban teljesen kezdő vagy és nem előírás a feladatban, akkor én azt javasolnám, hogy támogass egyelőre csak egy adatbáziskezelőt. Lesz azzal is elég feladatod. De - ha tudod - tervezd úgy a CMS-t, hogy később bővíthető legyen a támogatott adatbázismotorok köre.

Üdv:

Dávid
4

Hasznalj PDO-t es akkor az

Greg · 2014. Már. 19. (Sze), 10.41
Hasznalj PDO-t es akkor az egy reszet lefedi az adatbazismotoroknak. Ezenfelul keszits kulon schema fajlt a tamogatott adatbazismotoroknak es a kivalsztotthoz tartozot toltsd be.
De egyebkent amilyen kerdeseket itt felteszel en abbol azt latom hogy rosszul kozelited meg a tanulast. Kb ahhoz tudnam hasonlitani, hogyha mondjuk egy szivmutetet szeretnel vegrehajtani, de azt se tudod egy verzest hogyan kell ellatni. Eloszor az alapokkal ismerkedj meg, aztan nezd meg open source rendszerek hogyan oldjak meg a telepitest(ha az alapok megvannak akkor nagyjabol erteni is fogod a kodot) es ez alapjan mar latni fogod milyen modszerekkel lehet megoldani bizonyos problemakat.
5

Én a tanfolyam hiányosságaira

bamegakapa · 2014. Már. 19. (Sze), 11.12
Én a tanfolyam hiányosságaira gyanakszom inkább (ha jól emlékszem ő írta, hogy valahol tanul), eleve hendikeppel indítják a tanítványokat. Például az, hogy mysql_ függvényeket tanítanak, nálam mindig kiveri a biztosítékot.
7

Tedd már túl magad a mysql_

Hidvégi Gábor · 2014. Már. 19. (Sze), 11.56
Tedd már túl magad a mysql_ függvényeken, semmi baja nem lesz attól, ha azt tanulja meg, legfeljebb később nem tudja használni, akkor meg utánaolvas, és egy mass replace-szel lecseréli az újra. Azzal is lehet biztonságos kódot írni, mint ahogy mysqli_-vel vagy pdo-val lyukasat.

Legalább meglátja majd, hogy a számítástechnika már csak ilyen, folyamatosan változik, és képben kell lenni az újdonságokkal. Ez a tudás akkor jön jól, ha egyszer mégis csak olyan projekten kell dolgoznia, ahol régi rendszert kell támogatni, és akkor nem kell kétségbe esnie, hogy úristen, most mi lesz. Vagy mondjuk olyan fejlesztésbe kezd bele, ahol szempont a gyorsaság, és a prepared statementek nem adnak kielégítő eredményt, vagy például a lekérdezéseket dinamikusan állítják elő, és túl macerás a preparálás.
8

Nem fogom túltenni magam

bamegakapa · 2014. Már. 19. (Sze), 12.46
Nem fogom túltenni magam rajta :). Az a tanfolyam, ahol ilyet oktatnak, igénytelenséget sugall magáról. Igen, a számítástechnika folyamatosan változik. De ha ezt az alaptételt pont az nem képes lekövetni, aki a tanár szerepében tetszeleg, akkor miről beszélünk? Van ott nagyobb probléma is, mint a mysql_, úgy sejtem. Ez csak egy indikátor, hogy egyszer megcsinálták a tananyagot, és azóta is jól elvannak vele (neadjisten nem is hallottak még ők se másról...).

Ha jó az oktatás, nem fog kétségbe esni semmitől. Szerintem sokkal szerencsésebb, ha a régi rendszernek kell utánaolvasnia, mert éppen beszívott egy régebbi kódbázist, mintha az újnak (újnak, omg, mondjuk azt, hogy a jelenleginek...) kéne utánaolvasnia. Az már rég rossz. Persze a leges-legrosszabb, ha maga is "régi kódbázis"-okat kezd gyártani, amiket aztán mások szophatnak be, mert nem ismer mást...

Biztos tudod, de azért leírom: PDO-ban és mysqli-ben sem csak prepared statementeket lehet használni. Ha tényleg nagyon nincs más út, lehet összefűzögetni ezekkel is (érted, mindkét utat járhatod velük, a régivel csak az egyiket).

Tapasztalatból mondva, inkább a megszokás viszi az összefűzögetés felé az embert, mint bármi más. Azok a húde speciális igényű projektek, amikről beszélni szoktál, annyira kis százalékát teszik ki a webes projekteknek, és annyira kevés webprogramozó dolgozik ilyenen ténylegesen, hogy nem hiszem, hogy ennek kéne a szempontnak lennie.

Sajnálatos módon az ilyen tanfolyamokról kikerülő emberek egy teljesen alapvető projektet sem tudnak minőségi szinten elkészíteni, és ez nem az ő hibájuk. Koloncokat raknak a nyakukba, amiket aztán ha sikerül maguktól, kemény munkával ledobni, talán lehetnek jó szakemberek. Nem hogy fegyvertelenül küldik őket a csatába, hanem olyan kardokkal, amik látszólag érnek valamit, de az első csapástól szilánkokra esnek.
9

Az oktatásban átadott tudás

Hidvégi Gábor · 2014. Már. 19. (Sze), 13.34
Az oktatásban átadott tudás jóval lassabban aktualizálódik, mint ahogy a trendek változnak (tankönyveket kiadni nem lehet gyorsan, de akár egy online tananyagot sem). Ha mysql_ függvényeket tanítanak, nagy valószínűséggel valamilyen középiskolai/felsőoktatásbeli tananyagról van szó, ráadásul a lassúság ott hatványozottan igaz. Ezeken a helyeken nem feltétlenül az a cél, hogy a legfrissebb irányzatokat tanítsák meg, hanem azt, hogy hogyan kell programozni. Nem beszélve arról, hogy változik a divat, pár éve az XHTML volt a menő, ma már a "sima" HTML, most a PDO, lehet holnap jön valami más.

Továbbra is úgy gondolom, hogy ettől nem lesznek hátrányban a nebulók, sőt inkább rugalmasabban tudnak gondolkodni, mert több mindenre lesz rálátásuk.

Ha megnézzük, hogy milyen újításokat hoz a mysqli, rögtön látszik, hogy ezek nélkül meg lehet lenni nyugodtan az ő szintjükön, a speckó dolgokra úgyis nagyobb projekteknél lesz szükségük nagy valószínűséggel.

Sajnálatos módon az ilyen tanfolyamokról kikerülő emberek egy teljesen alapvető projektet sem tudnak minőségi szinten elkészíteni, és ez nem az ő hibájuk. Koloncokat raknak a nyakukba, amiket aztán ha sikerül maguktól, kemény munkával ledobni, talán lehetnek jó szakemberek. Nem hogy fegyvertelenül küldik őket a csatába, hanem olyan kardokkal, amik látszólag érnek valamit, de az első csapástól szilánkokra esnek.
Túlzásokba ne essünk, kezdőként érzésem szerint te sem csináltál minőségi kódot, rengeteg részlet van, amire figyelni kell, és ami nem fér bele egy tananyagba, mint ahogy neked is nap mint nap vadászni kell az újdonságokra. Úgyhogy nem kéne ilyen tragikusan felfogni a dolgot.
10

Mitől lenne több mindenre

bamegakapa · 2014. Már. 19. (Sze), 15.09
Mitől lenne több mindenre rálátásuk, ha csak egy dolgot tanulnak meg? :)

"Gyerekek, az adatbázishoz a mysql_connect paranccsal csatlakozunk." - sajnos ez a gyakorlat, úgy tűnik.

Még egyszer elmondom, mert lehet, nem jött át: nem a mysql_ a lényeg, egyáltalán nem. Meg nem is a PHP. Ez csak egy tünet a sok közül.

Egyrészt ezek nem olyan új dolgok, informatikai szemmel nézve (a PDO asszem 10 éves körül lehet...). Másrészt aki ilyesmit tanít, annak fel kell készülnie rá, hogy ez egy ilyen terület, gyors a változás. Ha a tanár nem képzi magát folyamatosan, akkor szomorú, de alkalmatlan (csak hát nem tudnak senkit felvenni a helyére, nincs verseny, ki megy ma informatika tanárnak, ha kicsit is ért a szakmához - tisztelet a kivételnek). Ha az anyag nem frissül 1-2 évente, akkor rossz a rendszer.

Kezdőként én is pocsék kódot írtam. De a tanfolyam nem épp arra lenne jó, hogy megadja az alapokat? Mi értelme, ha utána ugyanolyan pocsék (vagy még rosszabb) kódot fogsz írni, mint valaki, aki megcsinált pár tutorialt a neten?

Ezeken a helyeken nem feltétlenül az a cél, hogy a legfrissebb irányzatokat tanítsák meg, hanem azt, hogy hogyan kell programozni.

Ja, igen :D. Legalább azt megtanítanák...

Ha megnézzük, hogy milyen újításokat hoz a mysqli, rögtön látszik, hogy ezek nélkül meg lehet lenni nyugodtan az ő szintjükön, a speckó dolgokra úgyis nagyobb projekteknél lesz szükségük nagy valószínűséggel.

Ez a gondolkodás az, ami nekem a legkevésbé tetszik az egészben, sőt elszomorít. Mitől olyan rohadt speckó a prepared statement (leszámítva, hogy te is a másik módszert ismerted először)? Egy kis weboldalban nem lehet SQL injection sebezhetőség? A kezdők értelemszerűen figyelmetlenebbek, könnyebben kifelejtik az eszképelést - nem éppen az ő kezükbe kéne a prepared statement leginkább? Nekem ez tök logikus, de javítson ki, aki szerint nem az. Nem épp a kezdők kezébe kéne adnunk azokat az eszközöket, amikkel kisebb eséllyel követnek el végzetes hibákat?
11

Mitől lenne több mindenre

Hidvégi Gábor · 2014. Már. 19. (Sze), 16.01
Mitől lenne több mindenre rálátásuk, ha csak egy dolgot tanulnak meg? :)
Mi alapján állítod, hogy csak egy dolgot tanulnak meg, és nem mondja a tanár, hogy nézzenek utána a további lehetőségeknek? Mi van akkor, ha az oktatásra használt szerveren nincs jobb lehetőség?

Egyrészt ezek nem olyan új dolgok, informatikai szemmel nézve (a PDO asszem 10 éves körül lehet...).
PHP 5.2-ben például bugos volt a PDO, és máig vannak olyan szerverek, ahol ilyen php fut. 5.3-ban például változott a mysqli_use_result és store_result használata, ha valaki 5.2-ben ezt használta, nézhette át a kódot, azaz egy több site-ot kiszolgáló szerveren nem lehetett csak úgy verziót váltani.

Másrészt aki ilyesmit tanít, annak fel kell készülnie rá, hogy ez egy ilyen terület, gyors a változás. Ha a tanár nem képzi magát folyamatosan, akkor szomorú, de alkalmatlan
Nem véletlenül utaltam a közép- és felsőoktatásra, ebben a mai, politikával átitatott tanulási rendszerben nagyon meg van kötve a tanárok keze.

Mitől olyan rohadt speckó a prepared statement (leszámítva, hogy te is a másik módszert ismerted először)? Egy kis weboldalban nem lehet SQL injection sebezhetőség?
Önmagában sem a PDO, sem pedig a prepared statementek használata nem elégséges a kódinjektálás ellen, ráadásul nem is fednek le minden esetet, ennyi erővel nyugodtan escape-elhetsz kézzel is, ugyanúgy figyelni kell, bármelyik utat választod.

Sőt, önmagában a prepared statementeket reklámozása csak tévhitbe ringat másokat, mert azt hiszik, hogy ennyiből meg is úszták az egészet, pedig a probléma kicsit összetettebb ennél (lásd második utas injektálás).


A fenti óra vagy tanfolyam célja nem az, nem lehet az, hogy hibátlan program írására tanítsa meg a résztvevőket, hanem az, hogy megismerkedjenek az alapokkal, ez nyilvánvaló lillilla kérdései alapján, például hogy minek és hogyan nézzen utána, meg át szeretné látni, milyen folyamatokból áll a szoftverkészítés. Egyszerűen még nincs azon a szinten, és jelen pillanatban teljesen érdektelen számára, hogy milyen adatbázisillesztőt használjon.
12

Nincs több mondandóm :).

bamegakapa · 2014. Már. 19. (Sze), 16.14
Nincs több mondandóm :).
6

Ha saját cms telepítőhöz van

Hidvégi Gábor · 2014. Már. 19. (Sze), 11.47
Ha saját cms telepítőhöz van szükségem rá,akkor minden adatbázismotort végig kell néznem.
Ha MySQL-ben írod meg a cms-t, akkor ezt kell csak ellenőrizned, a többiekkel nem kell foglalkozni. Érzésem szerint ez nem a tananyag kerete, a cél az, hogy az alapokkal megismerkedjetek.

A különböző adatbázismotorok: MySQL, PostgreSQL, MSSQL, Oracle és társaik, csak nagyon komoly alkalmazásoknak van arra szüksége, hogy támogassák mindet (vagy egy részüket).
13

Köszönöm nektek.

lillilla · 2014. Már. 19. (Sze), 16.20
Nagyon jól esik olvasni,hogy ennyire a szíveteken viselitek a kezdő programozók sorsát. Bár egyetlen tanárunk is ilyen lenne. Sajnos mindenben igazatok van. 2 éves OKJ képzésen veszek részt, grafikusként kerültem ki a főiskoláról,gondoltam, hozzátanulok némi programozást is. Nem elég,hogy művész beállítottságú,még lány is vagyok, de az kiverte a biztosítékot,hogy minden "alap" órát elfelejtettek megtartani. Webprogramozási alapokat,logikát nem tanultunk,irodalmat nem adtak hozzá (így neten keresgélve bele-bele futottunk hulladék 1000éves logikát magyarázó könyvekbe,amit bibliának hittünk), alapok helyett megismerkedtünk a C# szintaktikájával. Gondolkodni nem tanítottak, csak olyan szinten tanultunk, hogy "minden php-t úgy kezdünk,hogy ezzel az 5 sorral csatlakozunk az adatbázishoz,jön az sql kérés,a doctype és a print $kimenet". OOP nulla, UML nulla, biztonság 0, miből épül fel egy tárhely 0,javascript 0.5,front controller 0,amit meg megtanítottak,azt úgy tették,mintha az lenne a tökéletes módszer és tudás.Így persze,hogy olyan hibákba futunk,amitől sikítófrászt kaptok,és oké,hogy megnézem,hogy mi az a pdo és hogy néz ki, de a saját kódomba már nem tudom tökéletesen beleilleszteni, mert alapvetően rossz. Értem,hogy nincs idő,pénz,meg ne legyünk jobbak a tanárainknál,de sajnos a végén,mivel központi a vizsga és a bírálat, mindent számonkérnek,amit nem tanítottak meg. Nekem annyi szerencsém van,hogy legalább a HTML5-höz és a CSS3-hoz értek. Most okj vizsga előtt állunk, minőségi szakdolgozatot kellene írnunk és nincs kihez és hova fordulnunk. Így is isteni szerencsém van,hogy rátaláltam Nagy Gusztáv(<3) könyveire,de ennyi idő alatt csak átfutni tudom őket. Az angol anyaggal meg az a baj,hogy örülök,ha magyarul megértem,hogy mi van odaírva. Így most próbálom a legjobb tudásom szerint összerakni a szakdolgozatom és reszketve imádkozni,hogy ne kérdezzenek olyat a védésnél,amiről elképzelésem sincs.
14

Ja, kb. erről beszéltem.

bamegakapa · 2014. Már. 19. (Sze), 16.48
Ja, kb. erről beszéltem. Ismerek olyat, aki ilyen OKJ-s izén végzett, szegény nem sokat ért vele. HTTP-ről nem is hallott, hogy mi mit csinál azt nem mondták el, csak hogy ide ezt kell írni oda meg azt, ja meg Javascriptből szoktak még szörnyű dolgokat oktatni...

Tényleg nem bántásból, meg tisztelet a kivételnek, de a tanárok jelentős része is olyan, hogy semmilyen weboldalt nem bíznék rá. És akkor ő tanít. A szerencséd, hogy valószínűleg a vizsgáztatók is hasonló szinten lesznek ;). De erre azért ne alapozz :).

Gondolom ha már idáig eljutottál, végig szeretnéd csinálni, hajrá. Aztán ha megvan a papír, nekiállhatsz megtanulni, amiről papírt kaptál :).
15

Ezzel alaposan megjártad,

Hidvégi Gábor · 2014. Már. 19. (Sze), 18.27
Ezzel alaposan megjártad, hisz a szakmában úgysem a papírok, hanem a referenciamunkák számítanak, ennyi erővel tényleg egyedül többet tanulhattál volna, bár persze annyi haszna van, hogy konkrét feladatokat adtak.

Esetleg megpróbálhatsz gyakornokként elhelyezkedni valahol, aztán ha belejössz, kérhetsz magasabb fizetést.

Angolul viszont sürgősen kezdj el tanulni, mert ezt viszont tudni kell, a jó hír, hogy egyrészt primitív nyelv, másrészt pedig a szükséges szókincs csak párezer szó.
16

Az elhelyezkedéssel nincs

lillilla · 2014. Már. 19. (Sze), 21.47
Az elhelyezkedéssel nincs gond, grafikusként szívesen látnak mindenhol, max közben tanulok.
Elég jól tudok angolul és németül is,de az informatikai szaknyelv nem tartozik bele egyik iskola kínálatába sem. Elvileg vizsga előtt lesz belőle 1 óránk.
17

Akkor a legjobb barátod a

Hidvégi Gábor · 2014. Már. 19. (Sze), 22.29
Akkor a legjobb barátod a szótár, aztán szép lassan (vagy gyorsan) majd belejössz. A munkahelyeden pedig, miután beilleszkedtél, kérj olyan feladatot, ahol beletanulhatsz a programozásba is – és ezt jelezd előre a felvételinél, értékelni fogják. Ha megmarad ez az attitűdöd, amit itt, a weblaboron tanúsítasz, biztos vagyok benne, hogy sikeres leszel a szakmában.