2016-11-10 4 views
1

私のプロジェクトで少し問題があります。そして、名前または姓の値に 'ñ'がある場合、クエリ結果は何も返しません。
は、ここに私のコード正しく照会できません(MSSQL - PHP - JSON)

config.phpのだ:

<?php 
    ini_set('mssql.charset', 'UTF-8'); 
    header('content-type: text/html; charset=utf-8'); 
    $serverName = "192.168.1.21"; /* IP add of db Server */ 
    $connection = array("Database" => "db", "UID" => "?", "PWD" => "***"); 
    $conn = sqlsrv_connect($serverName, $connection); 

if(!$conn){ 
echo "Connection could not be established."; 
die(print_r(sqlsrv_errors(), true)); 
} 
?> 

MYQUERY:私はこれらのページで見

$idnumber = $_POST["idnum"]; 
$response = array(); 
$query2 = "SELECT cLName, cFName, cMName, cQualifier FROM student WHERE cIDNO = '$idnumber'"; 

try{ 
    $stmt2 = sqlsrv_query($conn, $query2); 
} 
catch(PDOExeption $ex){ 
    $response["Success"] = 0; 
    $response["message"] = "Database Error!"; 
    die(json_encode($response)); 
} 
$row2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC); 

    if($row2){ 
     $response["Success"] = 1; 
     $response["message"] = "Data available"; 
     $last_name = $row2["cLName"]; 
     $first_name = $row2["cFName"]; 
     $qualify = $row2["cQualifier"]; 

     $first_name = html_entity_decode(htmlentities($first_name)); 
     $last_name = html_entity_decode(htmlentities($last_name)); 

     $name = $first_name." ".$last_name." ".$qualify; 

     $response["Name"] = $name; 

     echo json_encode($response); 
    } 

    else{ 
     $response["Success"] = 0; 
     $response["message"] = "Database Error!"; 
     die(json_encode($response)); 
    } 

123etc.

しかし、なぜ私のプログラムにこれが起こっているのか分かりません。データベースで

例:cLName = "Española", cFName = "Edgar", cQualifier = "Jr."
出力:"Name":"Edgar Jr."
ながら:cLName = "Agustin", cFName = "Florence", cQualifier = "Jr."
出力:"Name":"Florence Agustin Jr."

のアイデア?お願いします?

注:私はデータベースの内容を変更または変更する権限がありません。

+0

'$ first_name'に値が格納されているかどうかチェックしましたか?あなたの問題がデータベースから値を取得しているかどうかを判断できます。 – Andreas

+0

検索語の前にNを追加します。 Select * from Tab1 Col1 = N'YourColumn ' –

+0

@ Andreasはい、私は試しました。私は別のIDの試みの試してみました、 "ñ"のない名前は値と名前が含まれている、値はありません。 'json_encode()'なしで 'echo 'しようとしました。それは同じです。 – kiLLua

答えて

1

私はISO-8859-1がendocedされ、以下のなかった場合、およびutf8_encodeが出力OPが得たものですが、utf8_encodeに欠けている何

、そのエンコーディングエラーMSSQL詐欺がUTF-8モードではないdoest考えますそれは正しいですか?

関連する問題