Επίλυση σφάλματος MySQL 1364: Το πεδίο 'mentors_id' δεν έχει προεπιλεγμένη τιμή

Επίλυση σφάλματος MySQL 1364: Το πεδίο 'mentors_id' δεν έχει προεπιλεγμένη τιμή
Επίλυση σφάλματος MySQL 1364: Το πεδίο 'mentors_id' δεν έχει προεπιλεγμένη τιμή

Συνήθεις προκλήσεις στην προσθήκη δεδομένων στη MySQL: Προεπιλογές πεδίων

Αντιμετώπιση σφαλμάτων σε MySQL μπορεί να είναι απογοητευτικό, ειδικά όταν σχετίζονται με κάτι τόσο κρίσιμο όπως η εισαγωγή νέων δίσκων. Εάν προσπαθείτε να προσθέσετε δεδομένα μέντορα σε έναν πίνακα, αλλά συνεχίζετε να αντιμετωπίζετε το σφάλμα 1364, δεν είστε μόνοι! Το θέμα αυτό, αναφέροντας «Το πεδίο "mentors_id" δεν έχει προεπιλεγμένη τιμή», έχει μπερδέψει πολλούς διαχειριστές και προγραμματιστές. 🛠️

Σε καταστάσεις όπως αυτή, η υποκείμενη αιτία μπορεί συχνά να είναι κάτι που κρύβεται στο σχήμα του πίνακα ή στις ρυθμίσεις διαμόρφωσής του. Ίσως λείπει μια προεπιλεγμένη τιμή ή ίσως μια παραβλέπεται ΟΧΙ ΜΗΧΑΝΟΣ περιορισμός. Όποια και αν είναι η περίπτωση, η κατανόηση των πιθανών ερεθισμάτων μπορεί να σας εξοικονομήσει ώρες αντιμετώπισης προβλημάτων.

Φανταστείτε το εξής: προσθέτετε δεδομένα στη MySQL, αναμένοντας ομαλή εκτέλεση, μόνο για να εμφανιστεί ένα σφάλμα που εμποδίζει τη διαδικασία. Αυτό το απλό ζήτημα μπορεί να επηρεάσει τις ροές εργασίας, να καθυστερήσει τις ενημερώσεις και να δημιουργήσει μια απογοητευτική συμφόρηση.

Σε αυτόν τον οδηγό, θα εξετάσουμε γιατί εμφανίζεται το σφάλμα 1364, εστιάζοντας σε έλεγχοι διαμόρφωσης κλειδιού που μπορεί να το λύσει. Από τον έλεγχο προεπιλογές σχήματος για να προσαρμόσετε τις ρυθμίσεις της βάσης δεδομένων, ας διερευνήσουμε πώς να κάνετε τα ένθετα δεδομένων σας να λειτουργούν ξανά ομαλά. 🌐

Εντολή Παράδειγμα χρήσης
ALTER TABLE ... MODIFY COLUMN Αυτή η εντολή τροποποιεί τις ιδιότητες μιας υπάρχουσας στήλης σε έναν πίνακα MySQL. Σε αυτήν την περίπτωση, το ALTER TABLE mentors MODIFY COLUMN mentors_id INT DEFAULT ορίζει το πεδίο mentors_id ώστε να αποδέχεται το ως προεπιλεγμένη τιμή, αντιμετωπίζοντας το συγκεκριμένο ζήτημα στο σχήμα όπου στο mentors_id προηγουμένως δεν υπήρχε προεπιλογή.
prepare() Η συνάρτηση προετοιμασία() στην επέκταση MySQLi της PHP προετοιμάζει μια δήλωση SQL για εκτέλεση, επιτρέποντάς μας να δεσμεύουμε μεταβλητές για ασφαλή εισαγωγή δεδομένων. Εδώ, χρησιμοποιείται για δυναμικές δηλώσεις SQL για τη διασφάλιση της ασφαλούς εισαγωγής τιμών, ιδιαίτερα χρήσιμη για την αποφυγή τρωτών σημείων ένεσης SQL.
bind_param() Αυτή η μέθοδος δεσμεύει μεταβλητές σε μια προετοιμασμένη δήλωση SQL ως παραμέτρους με καθορισμένη σειρά, επιτρέποντας δυναμικές τιμές εισαγωγής. Στον κώδικά μας, το bind_param("isssss", ...) δεσμεύει τις τιμές για mentors_id, nik, nama, jabatan, updated_at και create_at, προσθέτοντας ασφάλεια και ευελιξία στη διαδικασία εισαγωγής.
execute() Η συνάρτηση execute() εκτελεί την έτοιμη δήλωση στην PHP, εκτελώντας το ερώτημα SQL στη βάση δεδομένων. Αυτή η συνάρτηση είναι κρίσιμη εδώ, καθώς μας επιτρέπει να ελέγξουμε τη συμπεριφορά του κώδικα κατά την εισαγωγή δεδομένων τόσο με καθορισμένες όσο και με προεπιλεγμένες τιμές πεδίου.
SHOW COLUMNS ... LIKE Αυτή η εντολή MySQL ανακτά μεταδεδομένα για μια συγκεκριμένη στήλη. Στο παράδειγμα, SHOW COLUMNS FROM mentors LIKE "mentors_id" χρησιμοποιείται για να επαληθευτεί εάν η στήλη mentors_id έχει το σωστό σύνολο προεπιλεγμένων τιμών, παρέχοντας έναν άμεσο έλεγχο στη δομή του πίνακα.
fetch_assoc() Αυτή η συνάρτηση ανακτά μια σειρά αποτελεσμάτων ως συσχετιστικό πίνακα στην PHP, επιτρέποντας την πρόσβαση σε συγκεκριμένες τιμές στηλών με το όνομά τους. Εδώ, ελέγχει την προεπιλεγμένη διαμόρφωση της στήλης mentors_id, επικυρώνοντας ότι η τροποποίηση του σχήματός μας λειτούργησε όπως αναμενόταν.
assertFalse() Ως μέρος της δοκιμής μονάδας PHP, η assertFalse() ελέγχει ότι μια συγκεκριμένη συνθήκη αξιολογείται ως false. Χρησιμοποιείται εδώ για να επιβεβαιώσει μια επιτυχημένη σύνδεση βάσης δεδομένων, διασφαλίζοντας ότι το περιβάλλον δοκιμής έχει ρυθμιστεί σωστά πριν από περαιτέρω ενέργειες.
assertTrue() Στη δοκιμή PHPUnit, η assertTrue() επιβεβαιώνει ότι μια συγκεκριμένη συνθήκη είναι αληθής. Αυτή η δοκιμή διασφαλίζει ότι μια λειτουργία εισαγωγής ολοκληρώνεται με επιτυχία, παρέχοντας άμεση ανατροφοδότηση σχετικά με το εάν ο κώδικας εισαγωγής χειρίζεται δυναμικές τιμές για το mentors_id χωρίς σφάλματα.
rand() Η συνάρτηση rand() δημιουργεί έναν τυχαίο ακέραιο, ο οποίος χρησιμοποιείται εδώ για να εκχωρήσει ένα μοναδικό εναλλακτικό αναγνωριστικό στο mentors_id σε περιπτώσεις όπου δεν παρέχεται τιμή, διασφαλίζοντας ότι όλες οι εισαγωγές πληρούν τους περιορισμούς της βάσης δεδομένων.

Εντοπισμός σφαλμάτων των περιορισμών προεπιλεγμένης τιμής MySQL για Δεδομένα Mentor

Τα σενάρια που παρέχονται στο παράδειγμα επικεντρώνονται στην επίλυση του σφάλματος MySQL 1364, το οποίο υποδεικνύει ότι στο πεδίο "mentors_id" λείπει μια προεπιλεγμένη τιμή. Αυτό το σφάλμα συμβαίνει συχνά όταν οι πίνακες MySQL έχουν περιορισμό πεδίου, όπως NOT , αλλά δεν έχει οριστεί εναλλακτική τιμή για αυτό το πεδίο. Σε αυτήν την περίπτωση, το πεδίο «mentors_id» απαιτεί μια συγκεκριμένη τιμή για κάθε λειτουργία εισαγωγής. Το πρώτο σενάριο το λύνει αυτό τροποποιώντας το σχήμα του πίνακα, προσθέτοντας μια προεπιλεγμένη τιμή στο `mentors_id`. Αυτή η αλλαγή διασφαλίζει ότι κάθε νέα καταχώριση στον πίνακα "mentors" έχει μια ασφαλή εναλλακτική για το "mentors_id", αποτρέποντας έτσι το σύστημα από το να εκτελεί σφάλμα όταν λείπει μια τιμή. Σκεφτείτε το σαν να εμφανίζεστε σε μια σύσκεψη όπου όλοι έχουν ετικέτες ονομάτων — χωρίς αυτές, δεν θα σας αναγνωρίζουν, επομένως η προσθήκη μιας προεπιλογής διασφαλίζει τη συνέπεια και αποφεύγει τη σύγχυση. 🎯

Το δεύτερο σενάριο ακολουθεί μια δυναμική προσέγγιση εκχωρώντας μια τυχαία εναλλακτική τιμή στο `mentors_id` κατά την εισαγωγή δεδομένων. Αυτό είναι χρήσιμο εάν δεν μπορείτε να τροποποιήσετε απευθείας το σχήμα πίνακα, καθώς εκχωρεί ένα αναγνωριστικό μόνο όταν λείπει η τιμή του πεδίου. Εδώ, το `rand()` δημιουργεί ένα μοναδικό αναγνωριστικό ως αντίγραφο ασφαλείας, διασφαλίζοντας τη συμμόρφωση με τον περιορισμό NOT . Χρησιμοποιώντας προετοιμασμένες δηλώσεις και παραμέτρους δέσμευσης με το "bind_param", αυτό το σενάριο δίνει επίσης προτεραιότητα στην ασφάλεια και αποφεύγει τον κίνδυνο εισαγωγής SQL. Φανταστείτε να εκτελείτε ένα εργαστήριο με φύλλα σύνδεσης όπου σε τυχόν ονόματα που λείπουν εκχωρείται αυτόματα ένα προσωρινό αναγνωριστικό — αυτό διασφαλίζει ότι όλοι οι συμμετέχοντες καταγράφονται, ακόμα κι αν δεν συμπλήρωσαν κάθε λεπτομέρεια. Αυτό είναι ιδιαίτερα χρήσιμο σε βάσεις δεδομένων όπου αναμένονται πολλαπλές εισροές χρηστών. 🛡️

Επιπλέον, οι δοκιμές μονάδας επαληθεύουν ότι και οι δύο λύσεις λειτουργούν όπως αναμένεται. Οι ισχυρισμοί PHPUnit όπως "assertFalse" ελέγχουν ότι η σύνδεση της βάσης δεδομένων έχει δημιουργηθεί σωστά, ενώ το "assertTrue" επιβεβαιώνει ότι η δημιουργία δυναμικού αναγνωριστικού και η τροποποίηση σχήματος λειτουργούν όπως προβλέπεται. Αυτή η φάση δοκιμής αποτρέπει σφάλματα χρόνου εκτέλεσης επικυρώνοντας τη λειτουργικότητα κάθε σεναρίου πριν από την ανάπτυξη. Οι δοκιμές μονάδας είναι σαν τη δοκιμαστική λειτουργία πριν από την εκτόξευση ενός πυραύλου. επιτρέπουν τη δοκιμή κάθε τεμαχίου ξεχωριστά, διασφαλίζοντας ότι ολόκληρο το σύστημα θα λειτουργεί υπό πίεση. Περιλαμβάνοντας δοκιμές, ο κώδικας παρέχει μια ολοκληρωμένη λύση που μπορεί να διατηρηθεί και να κλιμακωθεί σε διαφορετικά περιβάλλοντα με σιγουριά.

Συνοπτικά, τα δύο σενάρια παρέχουν συμπληρωματικές προσεγγίσεις για την επίλυση του προβλήματος του σφάλματος 1364. Το πρώτο τροποποιεί απευθείας τον πίνακα για να αποφευχθούν σφάλματα εισαγωγής με μια λύση που βασίζεται σε σχήμα. Η δεύτερη προσέγγιση είναι πιο ευέλικτη, προσθέτοντας δυναμικές εναλλακτικές τιμές απευθείας στο σενάριο εισαγωγής. Τα σενάρια λειτουργούν καλά παράλληλα με τις δοκιμές μονάδας, διασφαλίζοντας ότι το σύστημα είναι αξιόπιστο και ασφαλές σε διαφορετικά σενάρια. Αυτές οι μέθοδοι διασφαλίζουν ότι ακόμη και σε πολύπλοκα περιβάλλοντα, όπου ενδέχεται να μην είναι δυνατές τροποποιήσεις στη δομή της βάσης δεδομένων, οι λειτουργίες εισαγωγής μπορούν να προχωρήσουν ομαλά. Και οι δύο προσεγγίσεις προσφέρουν ισχυρές λύσεις που διατηρούν ανέπαφη την ακεραιότητα των δεδομένων, διατηρώντας απρόσκοπτες αλληλεπιδράσεις μεταξύ των χρηστών και της βάσης δεδομένων.

Κατανόηση του σφάλματος «mentors_id» στην εισαγωγή MySQL

Αυτή η λύση εστιάζει στην PHP και τη MySQL για τη διαχείριση βάσεων δεδομένων, την αντιμετώπιση της διαμόρφωσης σχήματος και τους περιορισμούς χειρισμού.

// Solution 1: Adjust Table Schema by Adding Default Value to mentors_id
// This approach modifies the MySQL table schema, ensuring mentors_id has a default value.

// Connect to MySQL Database in PHP
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "database_name";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// Add Default Value to mentors_id Column
$sql = "ALTER TABLE mentors MODIFY COLUMN mentors_id INT DEFAULT ";

if ($conn->query($sql) === TRUE) {
    echo "Schema updated successfully";
} else {
    echo "Error updating schema: " . $conn->error;
}

$conn->close();

Λύση δυναμικής τιμής για λειτουργία εισαγωγής

Χρησιμοποιώντας μια έτοιμη δήλωση PHP, αυτή η μέθοδος εκχωρεί δυναμικά το mentors_id κατά τη λειτουργία εισαγωγής.

// Solution 2: Set mentors_id Dynamically During Data Insert
// Assign mentors_id a value if not provided, using a fallback or calculated ID.

$stmt = $conn->prepare("INSERT INTO mentors (mentors_id, nik, nama, jabatan, updated_at, created_at)
VALUES (?, ?, ?, ?, ?, ?)");
$stmt->bind_param("isssss", $mentors_id, $nik, $nama, $jabatan, $updated_at, $created_at);

// Set values dynamically with a fallback if mentors_id is missing
$mentors_id = $mentors_id ?? rand(1000, 9999); // Example ID generator
$nik = 1223333;
$nama = "budi";
$jabatan = "SPV";
$updated_at = "2024-10-23 09:03:00";
$created_at = "2024-10-23 09:03:00";

if ($stmt->execute()) {
    echo "New record created successfully";
} else {
    echo "Error: " . $stmt->error;
}

$stmt->close();
$conn->close();

Unit Testing for Solutions σε PHP και MySQL

Μια δοκιμή μονάδας PHP χρησιμοποιώντας PHPUnit επικυρώνει την επιτυχία εισαγωγής βάσης δεδομένων και τη συμβατότητα σχήματος και για τις δύο λύσεις.

// Test Case: Verify mentors_id is handled correctly during insertion
public function testInsertMentorData() {
    $db = new mysqli("localhost", "root", "password", "database_name");
    $this->assertFalse($db->connect_error, "Database connection should succeed");

    // Test dynamic ID solution
    $stmt = $db->prepare("INSERT INTO mentors (mentors_id, nik, nama, jabatan, updated_at, created_at)
                            VALUES (?, ?, ?, ?, ?, ?)");
    $id = rand(1000, 9999);
    $stmt->bind_param("isssss", $id, $nik, $nama, $jabatan, $updated_at, $created_at);
    $result = $stmt->execute();
    $this->assertTrue($result, "Dynamic insertion should succeed");

    // Check mentors_id schema update
    $schemaResult = $db->query("SHOW COLUMNS FROM mentors LIKE 'mentors_id'");
    $column = $schemaResult->fetch_assoc();
    $this->assertEquals($column['Default'], , "Default value should be ");

    $stmt->close();
    $db->close();
}

Στρατηγικές χειρισμού προεπιλεγμένων τιμών που λείπουν στα ένθετα MySQL

Όταν εργάζεστε με MySQL και σχεσιακές βάσεις δεδομένων, ένα κοινό πρόβλημα περιλαμβάνει την έλλειψη προεπιλεγμένων τιμών για τα πεδία, που οδηγεί σε σφάλματα όπως το "Το πεδίο 'mentors_id' δεν έχει προεπιλεγμένη τιμή". Αυτό το ζήτημα παρουσιάζεται συνήθως όταν οι στήλες ορίζονται με περιορισμούς όπως ΟΧΙ ΜΗΧΑΝΟΣ αλλά δεν υπάρχει εναλλακτική τιμή. Για παράδειγμα, εάν το σχήμα του πίνακα δεν προσδιορίζει τι πρέπει να είναι το «mentors_id» από προεπιλογή, οποιαδήποτε λειτουργία εισαγωγής που λείπει αυτή την τιμή θα προκαλέσει σφάλμα. Ένας τρόπος για να επιλυθεί αυτό είναι να αναθεωρήσετε τη δομή της βάσης δεδομένων για να κατανοήσετε ποια πεδία χρειάζονται υποχρεωτικές τιμές και να τροποποιήσετε ανάλογα το σχήμα. Αυτό εξασφαλίζει πιο ομαλές αλληλεπιδράσεις δεδομένων, ειδικά σε περιβάλλοντα πολλών χρηστών όπου η συνέπεια των δεδομένων είναι το κλειδί. 🌍

Μια άλλη σημαντική πτυχή περιλαμβάνει τη διαμόρφωση του κώδικα εφαρμογής για να χειρίζεται δυναμικά τις τιμές που λείπουν. Αντί να ενημερώσετε το σχήμα της βάσης δεδομένων, μια πρακτική προσέγγιση είναι να ορίσετε εναλλακτικές τιμές στην εφαρμογή backend σας, επιτρέποντας ευελιξία χωρίς αλλαγή της δομής του πίνακα. Για παράδειγμα, εάν διαχειρίζεστε ένα πρόγραμμα μέντορα, θα μπορούσατε να ορίσετε το «mentors_id» σε έναν μοναδικό αριθμό με βάση άλλα διαθέσιμα δεδομένα. Χρησιμοποιώντας λειτουργίες όπως rand() σε PHP ή διαμόρφωση προεπιλεγμένων παραμέτρων μέσω SQL COALESCE λειτουργία, επιτρέπει στον κώδικα να χειρίζεται ομαλά τις τιμές που λείπουν χωρίς να τροποποιεί άμεσα τη βάση δεδομένων, κάτι που είναι χρήσιμο σε περιβάλλοντα περιορισμένης παραγωγής.

Τέλος, ο αποτελεσματικός χειρισμός σφαλμάτων στον κώδικα βοηθά στην αποφυγή απροσδόκητων σφαλμάτων στην παραγωγή. Η καταγραφή κάθε σφάλματος που σχετίζεται με τις εισαγωγές δεδομένων μπορεί να ρίξει φως σε επαναλαμβανόμενα ζητήματα, όπως οι τιμές πεδίων που λείπουν. Επιπλέον, η δοκιμή συναρτήσεων εισαγωγής και διαμορφώσεων σχήματος μπορεί να βοηθήσει στην έγκαιρη επίλυση προβλημάτων. Για παράδειγμα, οι δοκιμές μονάδων μπορούν να επαληθεύσουν εάν οι προεπιλογές του πεδίου «mentors_id» λειτουργούν όπως αναμένεται, παρέχοντας έναν αξιόπιστο τρόπο ελέγχου για αλλαγές σχήματος και τον αντίκτυπό τους σε ζωντανές εφαρμογές. Ο χειρισμός των προεπιλεγμένων τιμών όχι μόνο ενισχύει την ανθεκτικότητα της εφαρμογής, αλλά διασφαλίζει επίσης την ακεραιότητα των δεδομένων, μειώνοντας το χρόνο διακοπής λειτουργίας που προκαλείται από μικρά σφάλματα εισαγωγής. ✅

Συνήθεις ερωτήσεις σχετικά με τον χειρισμό των προεπιλεγμένων τιμών που λείπουν στη MySQL

  1. Γιατί λαμβάνω ένα σφάλμα σχετικά με μια προεπιλεγμένη τιμή που λείπει στη MySQL;
  2. Το σφάλμα συνήθως σημαίνει ότι ένα απαιτούμενο πεδίο δεν έχει καθορισμένη προεπιλεγμένη τιμή, επομένως όταν επιχειρείτε μια εισαγωγή, η MySQL δεν γνωρίζει ποια τιμή να εφαρμόσει σε αυτό το πεδίο.
  3. Πώς μπορώ να προσθέσω μια προεπιλεγμένη τιμή σε μια στήλη;
  4. Χρησιμοποιήστε το ALTER TABLE δήλωση με MODIFY COLUMN για να ορίσετε μια προεπιλεγμένη τιμή για τη στήλη, όπως: ALTER TABLE mentors MODIFY COLUMN mentors_id INT DEFAULT .
  5. Είναι δυνατός ο δυναμικός χειρισμός των προεπιλεγμένων τιμών στον κώδικα εφαρμογής;
  6. Ναι, ορίζοντας προεπιλεγμένες τιμές μέσω κώδικα υποστήριξης (π.χ. PHP) χρησιμοποιώντας rand() Η δημιουργία μοναδικών αναγνωριστικών σάς επιτρέπει να διαχειρίζεστε τις τιμές που λείπουν με ευελιξία.
  7. Πώς μπορώ να ελέγξω εάν ο πίνακας MySQL έχει οριστεί προεπιλεγμένες τιμές;
  8. Τρέξιμο SHOW COLUMNS FROM με το όνομα της στήλης για να εμφανιστεί η προεπιλεγμένη ρύθμιση για αυτό το πεδίο, όπως π.χ SHOW COLUMNS FROM mentors LIKE 'mentors_id'.
  9. Ποιες είναι μερικές βέλτιστες πρακτικές για τη διαχείριση σφαλμάτων στις λειτουργίες της βάσης δεδομένων;
  10. Εξασφαλίστε ολοκληρωμένη καταγραφή για εισαγωγές και ελέγχους σχημάτων. Χρησιμοποιήστε δηλώσεις SQL με λογική διαχείρισης σφαλμάτων για να επαληθεύσετε τη συμβατότητα σχήματος πριν κάνετε ενημερώσεις.

Επίλυση σφαλμάτων εισαγωγής για συνεπή διαχείριση βάσεων δεδομένων

Σε περιπτώσεις όπως το σφάλμα 1364 της MySQL, η διαμόρφωση προεπιλογών ή ο χειρισμός δυναμικών τιμών μπορεί να βελτιστοποιήσει τις ροές εργασίας της βάσης δεδομένων και να μειώσει ζητήματα που σχετίζονται με ένθετα. Η προσθήκη σαφών διαδικασιών χειρισμού σφαλμάτων διασφαλίζει περαιτέρω μια αξιόπιστη εμπειρία τόσο για τους διαχειριστές όσο και για τους τελικούς χρήστες.

Τελικά, προσαρμόζοντας το σχήμα ώστε να προσαρμόζονται οι προεπιλεγμένες τιμές ή χρησιμοποιώντας κώδικα για την εισαγωγή εναλλακτικών τιμών, ελαχιστοποιείτε τις διακοπές και διατηρείτε αποτελεσματική τη διαχείριση δεδομένων. Αυτή η προσέγγιση σάς επιτρέπει να αποτρέψετε μικρά σφάλματα από το να προκαλέσουν μεγάλες διακοπές στη ροή εργασίας. 📊

Αναφορές και πόροι για την κατανόηση του χειρισμού σφαλμάτων MySQL
  1. Λεπτομέρειες τεχνικών χειρισμού σφαλμάτων MySQL και διαμορφώσεων σχημάτων: Τεκμηρίωση MySQL .
  2. Παρέχει πληροφορίες σχετικά με τη χρήση προετοιμασμένων δηλώσεων για ασφαλή ερωτήματα MySQL: Προετοιμασμένες δηλώσεις PHP .
  3. Καλύπτει τις βέλτιστες πρακτικές για τροποποιήσεις σχήματος βάσης δεδομένων στη MySQL: Οδηγός βάσης δεδομένων .
  4. Προσφέρει σεμινάρια και παραδείγματα για το χειρισμό NOT περιορισμών και προεπιλογών: SQL Shack .
  5. Εξηγεί μεθόδους για τη δημιουργία δυναμικών αναγνωριστικών και συναρτήσεις PHP για λειτουργίες βάσης δεδομένων: PHP rand() Συνάρτηση .