field char(50) binary not null unique primary key,fulltext (field)
この設定で作られたフィールドがあり、主にlike検索をされます。
このフィールドには本来10進数の数字の文字列を入力する事を考えていたのですが、(数値としては桁数が大きすぎる事と、その数字列の中に"123"を持つ物を探すなど数量とは関係無い検索がされる事から文字列にしています)
MySQLのリファレンスによると、インデックスの対象になる文字列は桁数が短い方がいいようなので、どうせ数値でなく文字列を使っているのならと思い、1バイトで表現出来る全ての文字を使い256進数で表し、桁数を節約しようと考えました。
256進数に直してしまうと10進数の状態で"ある数字列"を持つのかどうか分からなくなるのではないかと思うかもしれませんが、それはこのフィールドに行われるlike検索の特徴により解消されます。
長い前置きでしたが、質問はタイトル通り制御文字を含む文字列を扱う事、言い換えれば0~255の全ての文字コードを文字列データとしてMySQLでインサート・全文インデックス・セレクトする方法です。このフィールドのデータは出力される事は無く、selectのwhere部分に使われ、出力されるのは同レコード内の別のフィールドのデータです。
素直に以下のコードでテストしましたが失敗しました。
while ($i < 50){
$rand = mt_rand(0,255);
$str .= chr($rand);
$i++;
}/*insertする文字列$strを生成*/
$sql = "insert into table(field) values ('$str')"
$strの中に制御文字や"や'等の文字が入るとinsertが失敗し、追加出来たレコードについても、コマンドプロンプトからselectして出力してみるとPCが警告音を連発します。
何か方法は無いでしょうか?
No.1ベストアンサー
- 回答日時:
エスケープすればいいでしょう。
詳しくは参考URLをどうぞ。(私が過去に回答したものです)
参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=1291646
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- Java Java 南京錠 2 2023/02/04 11:46
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLローダーCSV取込で、囲み文...
-
テーブルの最後(最新)のレコー...
-
MySQLでの近似値順での値の取得...
-
BLOBやCLOBのパフォーマンスを...
-
NULLの挿入の仕方が…?
-
2回実行のSQL文を1回にしたい
-
入力データの半角スペースと全...
-
複数のフィールドを比較してデ...
-
配列に指定した値が含まれてい...
-
Null値件数をカウントする式に...
-
MySQL テーブルのリレーション...
-
テーブルのフィールドの一番長...
-
SELECTした合計値をそのまま割...
-
int型フィールドにnullを登録で...
-
固定長データのテキストファイ...
-
CSVからNULL値をインポート
-
最大値が抽出できない!
-
WHERE句内でプライマリキーの検...
-
select文の実行結果に空白行を...
-
単一グループのグループ関数で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLローダーCSV取込で、囲み文...
-
テーブルの最後(最新)のレコー...
-
2回実行のSQL文を1回にしたい
-
int型フィールドにnullを登録で...
-
SQLです下記の問合せを行うクエ...
-
SELECTした合計値をそのまま割...
-
BLOBやCLOBのパフォーマンスを...
-
テーブルのフィールドの一番長...
-
配列に指定した値が含まれてい...
-
Null値件数をカウントする式に...
-
固定長データのテキストファイ...
-
ACCESSのクエリで空白以降を別...
-
【MySQL】 DECIMAL(2,1) に 13...
-
複数フィールド対してLIKE '% ...
-
ファイルメーカー10で重複デー...
-
MySQLでの近似値順での値の取得...
-
NULLの挿入の仕方が…?
-
CSVからNULL値をインポート
-
MYSQLで月ごとの集計をおこない...
-
ファイルメーカーのフィールド...
おすすめ情報