Web εφαρμογές & βάση MS SQL

Βοήθεια λύσεις και νέα από τον χώρο των open source ή έτοιμων εφαρμογών που έχουν φτιαχτεί με την PHP όπως oscommerce, κ.α.

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
jim_sdtv
Δημοσιεύσεις: 44
Εγγραφή: 28 Δεκ 2008 14:09

Web εφαρμογές & βάση MS SQL

Δημοσίευση από jim_sdtv » 06 Μαρ 2009 00:07

Γεια σας παιδιά,

Θα ήθελα να μάθω τι δικτυακές εφαρμογές μπορώ να στήσω χρησιμοποιώντας μια βάση MS SQL;

Μπορώ να έχω ένα παράδειγμα.

Ευχαριστώ!


Άβαταρ μέλους
jim_sdtv
Δημοσιεύσεις: 44
Εγγραφή: 28 Δεκ 2008 14:09

Web εφαρμογές & βάση MS SQL

Δημοσίευση από jim_sdtv » 06 Μαρ 2009 15:13

Επειδή δουλεύω σε MySQL και πρώτη φορά βλέπω βάση Microsoft SQL... υπάρχει διαφορά;

Ευχαριστώ!

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Web εφαρμογές & βάση MS SQL

Δημοσίευση από soteres2002 » 06 Μαρ 2009 23:27

Μπορείς να χρησιμοποιήσεις μέχρι και την τελευταία λειτουργία που παρέχει το DBMS της Microsoft μέσω ΡΗΡ εφόσον υπάρχουν επεκτάσεις τόσο για windows όσο και για unix που σου παρέχουν δυνατότητα σύνδεσης με τη βάση σαν client. Όπως και με άλλες βάσεις δεδομένων, και με αυτην μπορείς να σχεδιάσεις τη βάση στον σερβερ και να την ενημερώνεις ή να παίρνεις αποτελέσματα και να χρησιμοποιείς πλήρως τις δυνατότητές του μέσω του SQL interface.

Παρεπιπτόντως, για τα λειτουργικά της microsoft έχει δημοσιευτεί επεκταση για την ΡΗΡ που μπορείς να την βρεις στο site της είτε σε DLL είτε σε source μορφή ώστε να την κάνεις εσύ compile, και χρησιμοποιεί το native C++ API για την MS/SQL. Βέβαια υπάρχουν και άλλες βιβλιοθήκες δωρεάν που επικοινωνούν με MS/SQL αλλά το πρωτόκολο επικοινωνίας είναι reverse-engineered, ασχέτως όμως από αυτό το γεγονός δουλεύουν πολύ καλά. Ενώ στον οδηγό της microsoft μπορείς να είσαι 100% σιγουρος ότι εκμεταλλεύεσαι στο έπακρο τις δυνατότητες της βάσης, αφού ΟΛΟ το πρωτόκολο είναι υλοποιημένο μέσα στο native C++ interface από την MS. Επίσης, είναι μια πλήρης επέκταση για την ΡΗΡ, αφού καλύπτει και ΟΟ και procedural χρήση και μπορεί να χρησιμοποιηθεί είτε ώς thread safe module είτε όχι TS. Αυτό είναι σημαντικό γιατί υπάρχουν πολλές εγκταστάσεις της ΡΗΡ σε Microsoft/IIS που απαιτούν thread safety, ενώ υπάρχουν πχ και εγκαταστάσεις Apache με pre-forking, οι οποίες δεν απαιτούν από την ΡΗΡ να είναι νηματικά ασφαλής όσο και Apache servers σε πολυνηματική έκδοση (που σε win32 θα έπρεπε και ο interpreter PHP όσο και τα modules που φορτώνονται δυναμικά μέσω DLLs να είναι και αυτά thread safe).

Η επέκταση αυτή λέγεται sqlsrv, την είχα κάνει παλιότερα compile σε win32 με κώδικα από το php.net και δούλευε OK, και θα σου δουλέψει με κάθε webserver σε win32. Για unix-like συστήματα κοίτα τις επεκτάσεις unixodbc και mssql και ίσως κάποιες κλάσεις της PEAR (pear.php.net) που κάνουν τα πράγματα πιο εύκολα.

κοίταξε επίσης εδώ http://msdn.microsoft.com/en-us/library/cc296221.aspx .

Άβαταρ μέλους
c0d3punk
Honorary Member
Δημοσιεύσεις: 1076
Εγγραφή: 15 Σεπ 2008 22:32
Τοποθεσία: Puerto pollo
Επικοινωνία:

Web εφαρμογές & βάση MS SQL

Δημοσίευση από c0d3punk » 07 Μαρ 2009 14:52

soteres2002 έγραψε:.........................

Η επέκταση αυτή λέγεται sqlsrv, την είχα κάνει παλιότερα compile σε win32 με κώδικα από το php.net και δούλευε OK, και θα σου δουλέψει με κάθε webserver σε win32......
Δηλαδή κάνοντας compile την εφαρμογή σου μέσω php.net γίνεται standalone?
like ants in a colony we do our share
but there's so many other f****' insects out there || Ανανεωμένα Παρτάλια || biZfind.gr

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Web εφαρμογές & βάση MS SQL

Δημοσίευση από soteres2002 » 07 Μαρ 2009 16:10

c0d3punk έγραψε:
soteres2002 έγραψε:.........................

Η επέκταση αυτή λέγεται sqlsrv, την είχα κάνει παλιότερα compile σε win32 με κώδικα από το php.net και δούλευε OK, και θα σου δουλέψει με κάθε webserver σε win32......
Δηλαδή κάνοντας compile την εφαρμογή σου μέσω php.net γίνεται standalone?
Όχι καμια σχέση, ίσως δεν φαίνεται ξεκάθαρα από όσα είπα πριν. Η επέκταση είναι ξεχωριστή σε μορφή κώδικα από τον κώδικα του μεταφραστή, έτσι είναι οι περισσότερες επεκτάσεις τις ΡΗΡ. Όταν η επέκταση είναι σε δυαδική μορφή, ο μεταφραστής τη "φορτώνει" δυναμικά προσθέτωντας ένα απλό "extension=php_sqlsrv.dll" directive στο αρχείο php.ini που κοιτάει, έτσι ώστε οι συναρτήσεις που υπάρχουν στην επέκταση να μπορούν να χρησιμοποιηθούν μέσα από ΡΗΡ κώδικα. Επίσης όσα ανέφερα δεν έχουν καμία σχέση με κώδικα ΡΗΡ, αλλά το πώς θα προσθεθεί η επέκταση στην ΡΗΡ αρχικά. Απλά εγώ ήθελα να κάνω compile αυτό το extension από την αρχή.

Τώρα αν εσύ θες είτε να φτιάξεις ένα δικό σου build (σε win32!!) της επέκτασης είτε να κάνεις κάποιες αλλαγές (που δεν ειναι καθόλου σπάνιο αν υπάρχει τέτοια εξοικίωση, είτε και για λογους ασφαλείας πχ. "δεν εμπιστεύομαι την επέκταση που δίνει κάποιος σε δυαδική μορφή") για να φτιάξεις εσύ από την αρχή την επέκταση σε δυαδική μορφή (δηλ. κάνοντας ένα compile), θα πρέπει να κάνεις recompile όλη την ΡΗΡ ώστε να φτιαχτεί και η βιβλιοθήκη. Αυτό όμως δεν σημαίνει ότι πρέπει να αντικαταστήσεις και την ΡΗΡ που έχεις σε δυαδική μορφή, απλά παίρνεις μόνο ότι χρειάζεσαι από τα binaries που κάνεις compile. Αυτό απαιτείται γιατί όλες οι επεκτάσεις κάνουν χρήση συναρτήσεων της ΡΗΡ (πχ zend engine) και για αυτό πρέπει να συνδεθεί με κάποια τμήματα κώδικα της ίδιας της ΡΗΡ. Δεν ξέρω αν είναι κατανόητό, πάντως αν βρείς κάποιο tutorial που να σου λέει πως να φτιάξεις δικά σου build είτε της ΡΗΡ είτε αυτόνομων επεκτάσεων (δηλ. οι δυνατότητες της επέκτασης να μην ενσωματοθούν στατικά μέσα στον μεταφραστή, οπότε και δεν υπάρχει ανάγκη για δυναμική φόρτωση) θα δεις ότι είναι άμεσα προφανές.

Αν δεν σε ενδιαφέρει πάντως αυτό ώς developer (δηλ. αν δεν ασχολείσαι με το ΡΗΡ core) δεν είναι ανάγκη να ξέρεις λεπτομέρειες για το πώς είναι οργανωμένη η ΡΗΡ σε κατώτερο επίπεδο. Αν θες να χτήσεις μια επέκταση από την αρχή, απλά διαβάζεις τις οδηγίες που υπάρχουν για αυτό το σκοπό και η διαδικασία είναι τυφλοσύρτης. Αν έχεις περιέργεια να μάθεις μερικά βασικά πράγματα σε κατώτερο επίπεδο, είναι καλό να δείς ένα tutorial για το πώς να φτιάχνεις μια απλή επέκταση (τότε θα δείς ότι για να κάνεις expose μια απλή συνάρτηση ενός ορίσματος στην ΡΗΡ μέσω της δικής σου επέκτασης, πρέπει να χρησιμοποιήσεις μέσα από την επέκτασή σου μια συνάρτηση που είναι υλοποιημένη στο core, και άρα πρέπει να συνδέσεις αυτόν τον κώδικα με τα αντίστοιχα κομμάτια του ΡΗΡ core κατά τη μεταγλώττιση, και τότε όλα όσα αναφέρω εδώ θα είναι τελείως προφανή :hammer: ).

Προφανώς, οι περισσότεροι (administrators & developers) παίρνουν έτοιμα builds για διάφορες επεκτάσεις κυρίως για win32 και δεν τους ενδιαφέρει να φτιάξουν δικά τους, κυρίως γιατί αυτό προϋποθέτει να έχεις και τα κατάλληλα εργαλεία για αυτή τη δουλειά (πχ compilers και κάποιες εξωτερικές βιβλιοθήκες) ή γιατί είναι δύσκολο ή γιατί δεν υπάρχει λόγος να το κάνεις αυτο για να χρησιμοποιείς απλά την βιβλιοθήκη ή (επίσης πολύ βασικό) αν δεν υπάρχει ανάγκη να υποστεί τροποποιήσεις.

Παρένθεση, μερικές εταιρίες που ασχολούνται με ασφάλεια και επιτηρούν συστήματα και δίκτυα, πρώτα εξετάζουν τον κώδικα για σφάλματα και κενά ασφαλείας και μετά φτιάχουν δικά τους builds πριν χρησιμοποιηθούν στην παραγωγή. Πχ υπάρχουν εταιρίες που προσφέρουν επι πληρωμή συμβουλευτική για ασφάλεια σε συγκεκριμένα open source πακέτα όπως ΡΗΡ, Apache. Οπότε ο τρόπος που γίνεται αυτό το custom build του software για το οποίο παρέχουν συμβουλές, αν είναι ανάγκη να γίνουν αλλαγές στον κώδικα του πακέτου, είναι βασική γνώση για τέτοιες δουλειές. Αν πχ ήθελαν να προσθέσουν την sqlsrv επέκταση στον πελάτη τους, θα έκαναν ίσως κάποιες αλλαγές για κάποιο λάθος ή κενό ασφαλείας που ίσως εντόπιζαν μέσα στον κώδικα, και θα φτιάχνανε μια παραλαγμένη έκδοση της επέκτασης πριν την κάνουν deploy στους (πχ) production servers.
Επίσης, μπορεί ο πελάτης να ήθελε και κάποιες επιπλέον λειτουργίες σε αυτήν την επέκταση που να γίνονται γρήγορα (οι επεκτάσεις έχουν αυτο το προνόμιο), και οι προγραμματιστές να επέλεγαν να τις ενσωματώσουν στην υπάρχουσα επέκταση. Τότε και πάλι πριν δωθεί η επέκταση στην παραγωγή, πρέπει να χτηστεί σε δυαδική μορφή με τη γνωστή διαδικασία.

Αυτό ήταν λίγη φιλολογία πάνω στις ΡΗΡ επεκτάσεις για όσους ενδιαφέρονται. Ένα καλό βιβλίο που τα περιγράφει όλα αυτά είναι το Extending and Embedding PHP, Sara Golemon από τη σειρά Developers Libary της O'reilly. Υπάρχει στο Παπασωτηρίου για όσους ενδιαφέρονται να το αγοράσουν.

Άβαταρ μέλους
jim_sdtv
Δημοσιεύσεις: 44
Εγγραφή: 28 Δεκ 2008 14:09

Web εφαρμογές & βάση MS SQL

Δημοσίευση από jim_sdtv » 08 Μαρ 2009 23:52

Σε ευχαριστώ soteres2002 για την ολοκληρωμένη απάντησή σου. Να σαι καλά.

Απάντηση

Επιστροφή στο “PHP έτοιμες εφαρμογές”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης