greeker Δημοσ. 6 Απριλίου 2012 Δημοσ. 6 Απριλίου 2012 καλημέρα, έχω dual-boot linux-win7 και στημένα apache-mysql-phpmyadmin ενώ στο Linux το ερώτημα: > SELECT * FROM test_table WHERE id=051 AND city like '%αθηνα%' δουλεύει περίφημα. Στα windows κολλάει και λέει: > Λάθος στο ερώτημα: SELECT * FROM test_table WHERE id=051 AND city like '%αθηνα%'. Illegal mix of collations for operation 'like' από τον php κώδικά μου χρησιμοποιώ μια wrapped mysql_query() που έφτιαξα εγώ για ευκολία και έχει ως εξής: (όποιον του αρέσει την 'κλέβει' ελεύθερα) > function my_mysql_query ($query) { $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die('Αποτυχία σύνδεσης στη ΒΔ: ' . mysql_error()); //Επιλογή ΒΔ $db = mysql_select_db(DB_DATABASE) or die("Η Βάση Δεδομένων δε βρέθηκε"); //ορισμός ελληνικής γραμματοσειράς για στοιχεία ΒΔ mysql_query("SET NAMES 'utf8'", $link); mysql_query("SET CHARACTER SET 'utf8'", $link); $result = mysql_query($query) or die ("Λάθος στο ερώτημα: $query. ".mysql_error() ."<br />" ); return $result; } Παρατήρησα ότι αν αλλάξω το utf8 σε utf8_general_ci το ερώτημα πετυχαίνει αλλά δεν βρίσκει κανένα match - που είναι λάθος.. άρα υποπτεύομαι κάτι παίζει με τους ελληνικούς χαρακτήρες που όμως εμφανίζεται μόνο στα windows και όχι στο linux που δουλεύει άψογα
prekageo Δημοσ. 6 Απριλίου 2012 Δημοσ. 6 Απριλίου 2012 Δώσε μας το output του >show create table test_table; και από τα δύο συστήματα.
greeker Δημοσ. 6 Απριλίου 2012 Μέλος Δημοσ. 6 Απριλίου 2012 Δώσε μας το output του >show create table test_table; και από τα δύο συστήματα. μου ζητάει να προσδιορίσω στήλη στο ερώτημα, αλλά αυτό με έβαλε σε σκέψεις.. αυτό που έκανα ήταν να ψάχνω μια λέξη-κλειδί σε όλες τις στήλες. αλλά τελικά κολλούσε σε μια στήλη που ήταν τύπου timestamp. οπότε έβαλα τον έλεγχο: > my_mysql_query("TRUNCATE TABLE $search_table"); $tbl_description = my_mysql_query("describe $table"); $nr_of_results = 0; while($row = mysql_fetch_array($tbl_description)) { $field = $row['Field']; if (substr($row['Type'],0,7) != "varchar") { continue; } κλπ κλπ } ευχαριστώ τώρα δουλεύει αλλά περίεργο που αυτό απαιτείτο μόνο στα windows ... ξέρει κανείς γιατί για να μην την πατήσω στο μέλλον;
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα