$database->find(array('value'=>'İngiltere'));
Il n'y a pas de méthode find()
sur la classe MongoDB. Est-ce que $database
est une instance MongoCollection?
Vous rencontrez peut-être des problèmes avec le codage UTF-8 (voir: this answer pour une discussion connexe), mais les trois chaînes que vous avez partagées semblent être correctement codées. En utilisant des chaînes UTF-8, il ne devrait pas y avoir de problème d'insertion et d'interrogation avec lesdites valeurs. Prenons l'exemple de code suivant:
$values = ['İngiltere', 'İtalya', 'Şampiyona'];
$m = new MongoClient();
$c = $m->test->foo;
$c->drop();
foreach ($values as $value) {
printf("Testing value: %s\n", $value);
printf("Detected encoding: %s\n", mb_detect_encoding($value));
$c->insert(['x' => $value]);
var_dump($c->findOne(['x' => $value]));
echo "\n";
}
Cela génère la sortie suivante sur mon système:
Testing value: İngiltere
Detected encoding: UTF-8
array(2) {
'_id' =>
class MongoId#6 (1) {
public $$id =>
string(24) "5213d027e84df17727ca7985"
}
'x' =>
string(10) "İngiltere"
}
Testing value: İtalya
Detected encoding: UTF-8
array(2) {
'_id' =>
class MongoId#5 (1) {
public $$id =>
string(24) "5213d027e84df17727ca7986"
}
'x' =>
string(7) "İtalya"
}
Testing value: Şampiyona
Detected encoding: UTF-8
array(2) {
'_id' =>
class MongoId#4 (1) {
public $$id =>
string(24) "5213d027e84df17727ca7987"
}
'x' =>
string(10) "Şampiyona"
}
Je pense que mon problème est de mon insert. J'ai essayé votre code et cela a fonctionné. mais avec mes valeurs, ça ne marche pas. que devrais-je faire pour transformer mes valeurs utf-8 avant insertion? – user2396307
je reçois mes données à partir de ce site: http://www.stats.betradar.com/s4/gismo.php?&html=1&id=1828&language=tr&clientid=35&child=1&childnodeid=1819 comment puis-je changer cet utf -8? pour résoudre mon problème? Merci pour la réponse – user2396307
J'ai lié à http://stackoverflow.com/a/5920748/162228 dans ma réponse ci-dessus. Cela a une discussion sur les différentes façons d'encoder les chaînes en UTF-8 en PHP. – jmikola