2016-11-16 1 views
0

ich PHP und MySQL bin mit für mein ProjektWie Marathi mit PHP und Mysql einfügen

Ich möchte Marathi Text speichern, in der MySQL-Datenbank, gegoogelt ich für Stunden und eine Hälfte einer Lösung gefunden, indem die MySQL Ändern Datenbankcodierung nach utf-8. Ich kann manuell (über PHPMyAdmin) Marathi-Zeichen in Mysql-Datenbank speichern.

Aber wenn ich versuche, etwas Text mit PHP einzufügen, bekomme ich "???" (Fragezeichen) anstelle von Marathi-Zeichen.

Muss ich Codierung in PHP auch einstellen? Wenn ja, wie?

Hier ist die Codedaten in der Datenbank

public function create_place(){ 
    include_once(dirname(__FILE__).'/_inc.php'); 
     $q = $_REQUEST; 
     $person_id=$q['person_id']; 
     $title = $q['title']; 
     $address = $q['address']; 
     $mobile=$q['mobile']; 
     $latitude=$q['latitude']; 
     $longitude=$q['longitude']; 
     $cat_id=$q['cat_id']; 
     $create_time=Date('Y-m-d H:i:s'); 
     $sql="INSERT INTO place(person_id,title,address,mobile,latitude,longitude,cat_id,create_time) VALUE('$person_id','$title','$address','$mobile','$latitude','$longitude','$cat_id','$create_time')"; 
     $this->db->query($sql); 
     $lastid = $this->db->insert_id(); 
     //echo $lastid; 
      include_once(dirname(__FILE__). '/SimpleImage.php'); 
      $_REQUEST['id'] = $lastid; 
      include_once(dirname(__FILE__). '/SimpleImage.php'); 
      include_once(dirname(__FILE__).'/_inc.php'); 
      $target= FCPATH. '/assets/uploads/place/'; 
      $target1=$target.basename(date('m-d-Y_H:i:s').'_'.$_REQUEST['id'].'_'[email protected]$_FILES['image']['name']); 
      $img=basename(date('m-d-Y_H:i:s').'_'.$_REQUEST['id'].'_'[email protected]$_FILES['image']['name']); 
      move_uploaded_file(@$_FILES['image']['tmp_name'],$target1); 
      $this->load->model('mplace'); 
      $sql="UPDATE place set image='$img' WHERE id='".$_REQUEST['id']."'"; 
      $this->db->query($sql); 
     $this->_render_json(array(
      'message' => 'place Create Successfully', 
      'image'=>$this->image_url('place',$img), 
     )); 

     $this->_render_json($data); 
} 

enter image description here

Antwort

0

versuchen so etwas wie einzufügen - das wird helfen

$title=utf8_encode($q['title']); 


Hoffnung.

+0

der obige Code funktioniert nicht, wenn eine andere Methode. –

0

Es sieht so aus, als hätten Sie Ihren Code nicht richtig konfiguriert. Sie erhalten ???, weil Sie Ihrem Browser nicht sagen, wie er Marathi parsen soll. Dieses Stück Code, um Ihre HTML:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

Dann überprüfen, ob die Spalte Sie Marathi sind die Speicherung in den Prüfungstyp utf8_general_ci hat. Um dies zu tun, sollte der SQL-Befehl SHOW TABLE STATUS die Eigenschaften Ihrer Tabelle anzeigen. Wenn die Sortierung ist nicht utf8_general_ci es dann durch die folgende SQL-Befehl ändern:

ALTER TABLE dbo.MarathiTable 
MODIFY marathi varchar(100)COLLATE utf8_general_ci; 

Vergewissern Sie sich, dass Ihre Insert-Anweisungen entsprechend konfiguriert sind wie folgt:

"INSERT INTO `comments`(id,comment) values (N'$id',N'$comment')"; 

Hier wird das Präfix N erzählt die SQL-Engine dass es die eingefügten Werte eines nationalen regionalen Sprachzeichensatzes sind.

Schreiben Sie dies auch am Anfang Ihres Programms, um alle wichtigen Variablen auf utf8 zu setzen. Sie können somit alle anderen Vorgänge ausführen, ohne sich um die Codierung kümmern zu müssen.

mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $conn); 
+0

Hat diese Antwort Ihr Problem gelöst? – Fabulous

0

verwenden, bevor Sie Ihre Abfrage mysql_set_charset($con, 'utf8'); oder mysqli_set_charset($con, 'utf8');

In Datenbankstruktur behalten ihre Sortierung zu utf8_general_ci

Ihr Problem lösen wird.