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

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

Δημοσ.

καλημέρα,

 

έχω 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 που δουλεύει άψογα

Δημοσ.

Δώσε μας το 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 ... ξέρει κανείς γιατί για να μην την πατήσω στο μέλλον;

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...