Welcome,
Guest
.
Please
login
or
register
.
Did you miss your
activation email
?
News:
Bug reports and fixes
.
Home
Help
Login
Register
Elxis CMS Forum
»
Ελληνικό Forum
»
Δημόσιο Βήμα
(Moderators:
CREATIVE Options
,
rentasite
) »
Εισαγωγή εγγραφής σε parent/child πίνακες
« previous
next »
Print
Pages: [
1
]
Author
Topic: Εισαγωγή εγγραφής σε parent/child πίνακες (Read 5726 times)
intefix
Sr. Member
Posts: 359
Εισαγωγή εγγραφής σε parent/child πίνακες
«
on:
April 03, 2014, 15:49:42 »
Για χαρά...είμαι σε ένα πολυχρηστικό περιβάλλον και έχω 2 πίνακες στη MySQL που αφορούν ένα πράγμα. πχ Τιμολόγια, Υλικά Τιμολογίου. Ποιος είναι ο πιο σωστός και ασφαλής τρόπος σε PHP να γράψω στους πίνακες; Οι πίνακες είναι σε INODB με ξένο κλειδί. Να κλειδώνω τους πίνακες; να βάλλω Commit, Rolover; και ταυτόχρονη διασφάλιση απο περίεργους χαρακτήρες για προστασία της βάσης μου;
Ευχαριστώ.
Logged
datahell
Elxis Team
Hero Member
Posts: 10356
Re: Εισαγωγή εγγραφής σε parent/child πίνακες
«
Reply #1 on:
April 03, 2014, 22:36:39 »
Προσωπικά στο Elxis δεν χρησιμοποιώ foreign keys αλλά αντ' αυτού μεταφέρω όλη την λειτουργικότητα στην php γιατί θέλω οι πίνακες και τα queries να είναι όσο γίνεται απλούστερα για μέγιστη συμβατότητα με native sql. Ο πιο σωστός τρόπος στην περίπτωσή σου εξαρτάται από την εφαρμογή σου. Αν αυτοί οι πίνακες επεξεργάζονται ταυτόχρονα από πολλούς χρήστες το lock μπορεί να προκαλέσει κάποιο query να αποτύχει. Από την άλλη είναι πιο απλός τρόπος αν έχεις 1 ή λίγους χρήστες. Νομίζω ότι τα
transactions
με commit/rollback είναι καλύτερη επιλογή για σένα. Όσο για την php χρησιμοποίησε
PDO
δαγκωτό όπως κάνουμε και στο Elxis. Για το filtering χρησιμοποίησε τις συναρτήσεις
filter_input
και
filter_var
της php. Για ακόμα πιο ειδικό filtering οι
preg_replace
και
preg_match
είναι μονόδρομος. Αναλόγως των πεδίων χρησιμοποιείς τα κατάλληλα patterns ή φίλτρα για τις filter_input/filter_var. Δεν είμαι γκουρού στις βάσεις δεδομένων οπότε ψάξτο και αλλού αν θες αν και νομίζω ότι έχω δίκιο. Για την php ότι θες εδώ είμαστε και έχουμε μεγάλη εμπειρία σε τέτοια πράγματα. Σημείωσε ότι το Elxis χρησιμοποιεί PDO με πλήρη υποστήριξη σε transactions.
$db = eFactory::getDB();
$db->beginTransaction();
$db->exec(...);
if (!$db->commit()) { $db->rollBack(); }
Και με
prepared statements
:
$db = eFactory::getDB();
$db->beginTransaction();
$stmt = $db->prepare(....);
$stmt->execute();
if (!$db->commit()) { $db->rollBack(); }
«
Last Edit: April 03, 2014, 22:59:55 by datahell
»
Logged
Elxis Team
|
Is Open Source
|
IOS Rentals | IOS AERO
Print
Pages: [
1
]
« previous
next »
Elxis CMS Forum
»
Ελληνικό Forum
»
Δημόσιο Βήμα
(Moderators:
CREATIVE Options
,
rentasite
) »
Εισαγωγή εγγραφής σε parent/child πίνακες