Προς το περιεχόμενο

PHP-MySQL και αριθμητικό όνομα ενός table


macabre_sunsets

Προτεινόμενες αναρτήσεις

Δημοσ.

Η βάση μου έχει αρκετούς πίνακες με όνομα «χχχχ» όπου χ είναι ένας αριθμός. Από ό,τι κατάλαβα, αυτό δεν είναι έγκυρο όνομα για πίνακες αλλά δυστυχώς δεν μπορώ να τους αλλάξω όνομα.

 

Το πρόβλημα που αντιμετωπίζω είναι ότι δεν μπορώ να διαβάσω τα δεδομένα των εν λόγω πινάκων από την PHP. Δίνοντας "SELECT * FROM table" μου επιστρέφει όλους τους πίνακες εκτός από αυτούς με το αριθμητικό όνομα. Υπάρχει κάποια λύση σε αυτό το πρόβλημα; Ψάχνωντας βρήκα κάποιους να προτείνουν να μπει το όνομα του πίνακα σε "[...]" αλλά ακόμα και έτσι δεν κατάφερα κάτι.

Δημοσ.

Δεν έχω διαβάσει ούτε και μου έχει τύχει κάτι που να μην δέχεται πίνακες με αριθμητικά για ονομασία. Δε σου έπαιξε με quotes ή double quotes; (SELECT * FROM '1234')

edit: δοκίμασε και με αυτόν τον χαρακτήρα: `

Δημοσ.

Το πρόβλημά μου είναι το ανάποδο. Θέλω κάτι τέτοιο "SELECT 4000 FROM my_table".

 

Προς το παρών βρήκα ότι το "SELECT 4000 as a FROM my_table" δουλεύει αλλά δεν είναι ιδιαίτερα βολικό να το κάνω αυτό 20-30 φορές.

 

Δοκίμασα και με το "SELECT `4000` FROM my_table" αλλά το αποτέλεσμα ήταν το ίδιο. Κάνω print_r() (στην PHP) τον πίνακα που επιστρέφει το query και είναι κενός.

Δημοσ.

Ούτε αυτό παίζει.

Εξάλλου, θα ήθελα να αποφύγω να γράφω 20-30 φορές το "SELECT `my_table`.`4000` FROM `my_table`".

 

Προς το παρών έκανα το ακόλουθο. Παρ'όλο που φαίνεται να παίζει, δεν γίνεται να μην υπάρχει καλύτερο τρόπος :/

>$tables = array('4000','4001', .....);
$selectTables = '';
foreach ($tables as $table)
{
$selectTables .= "table_name.$table AS a$table, ";
}				
$query = "SELECT $selectTables FROM my_table";

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...