SQL Server 2005テーブルのフィールドを検索しています。私は「どこ」句を使用せずに名前を取得するには、テーブルを依頼することができPHPを使用したSQL Serverクエリ - フランス語の特殊文字
$query = "select * from TableName where replace (replace (client , 'é' ,'e') , 'ç' ,'c') COLLATE French_CI_AI = 'Agence française du texte agréable'";
のようなものを使用していますが、私は「アジャンスフランセーズ・デュtexte AGREABLE」は、この特定の名前を使用する場合、私はそれを求めることはできません他のすべての名称は、私は問題は「C」または「E」の文字
に関連していると仮定句
を作業している場所あなたの助けをありがとう!
------------- EDIT --------------
は、あなたのanwserをありがとうございました。私は、このようなÅとéを取り除いて別のテストをしました。これは 'Agence francaise du texte agreable'です。
そして私はまだ情報を得ることができません!だから最終的に私の問題はどこですか? ...私は$ query = "select * from table = client = 'Agence francaise du texte agreable'をテストしました。
とのvar_dumpは、リソース(4、SQL Serverのステートメントを)返し
とfetch_arrayののvar_dump、ヌル
を返し、私は理解していない...それは他の名前:(
で動作します---------- EDIT 2 --------------
私の問題は、1つの結果と私のコード その後、コードを
に変更しました。$query = "select * from Table where client COLLATE French_CI_AI = 'Agence française du texte agréable'";
// SQLSrv_num_rows requires a static or keyset cursor.
if (strncmp(ltrim(strtoupper($query)), 'SELECT', strlen('SELECT')) == 0)
{
$array = array('Scrollable' => SQLSRV_CURSOR_KEYSET);
}
else
{
$array = array();
}
$cursor = sqlsrv_query($db, $query, array(), $array);
$row = sqlsrv_fetch_array($cursor, SQLSRV_FETCH_NUMERIC);
ありがとうございました!
私はあなたにも(すなわち:(置き換え))すべての特殊文字を削除する必要はないと思う
utf比較すると ''é '=' e''が 'true'になります。あなたが 'client'フィールドからアクセント付き文字を削除しようとしている何らかの理由があった場合、あなたが今削除した文字を含む文字列と比較しますか? "このリンゴを取り除いてオレンジ色に置き換えてくださいね、ちょっと、もうリンゴじゃないの?" –
解決しようとしている問題をもう少し説明できますか? – BPS
問題が見つかりました。あなたがこれを必要としないと言ったので、私はいくつかの変更を加えました。そして、私の質問がただ一つの結果を得るとすぐに、私はそれを読むことができません。 (私の最初の記事のコード変更を参照) – cedric