![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
CakePHP バージョン1.3.7です。
CakePHPでqueryを使ってSQL文を書くときなんですが
公式サイトに以下のように
App::import('Sanitize');
$sql = "SELECT * FROM users WHERE id = $id";
$sql = Sanitize::clean($sql);
サニタイズをしなさいとありますが、
上記の$idの部分がdate型で
$sql = "SELECT * FROM users WHERE date = '2011-05-16'";
みたいなときシングルクオートがエスケープされてクエリが通らないのはどうやって解決すればいいんでしょうか?
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_02.png?5a7ff87)
No.1ベストアンサー
- 回答日時:
$sql = Sanitize::clean($sql,array(
'encode'=>false
));
第二引数でencodeをfalseにしてしまいましょう。
ちなみに俺はこう書いてます。
$sql = "SELECT * FROM users WHERE date = :date";
$params = array(
'date'=>'2011-05-16'
);
$result = $this->Model->query($sql,$params);
ご返事ありがとうございます!!
できました!
一つ目の 'encode'=>false だとクエリが ¥'2011-05-16¥'
となってしまい。通らなかったのですが、二つ目の方法で、記述するとできました!
記述があっているかどうかわからないですが、
$sql = "SELECT * FROM users WHERE date = :date";
$sql = Sanitize::clean($sql);
$params = array(
'date'=>'2011-05-16'
);
$result = $this->Model->query($sql,$params);
という順番で記述しました。
URLに日付のパラメータを振ってたのですが、そこにシングルクオートを入れても、上記の方法でちゃんとエスケープされます。
勉強不足で恥ずかしいのですが、この記法知らなかったです。。。
プレースホルダみたいな感じなのでしょうか?
今から調べてみたいと思います。
ほんとうにありがとうございました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- PHP Q&Aサイトを作成していてURLの生成方法について迷っているのでアドバイスお願い致します 1 2023/08/10 16:42
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 日本の全市区町村を人口密度が低 1 2023/06/18 19:51
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- PHP PHP MySql ページング 2 2022/09/20 06:38
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ResultSetインターフェイスでの...
-
JAVA SQLServerException 列名 ...
-
MySQLのINSERT時にたまに重複に...
-
<VB.NET>INSERT文でDBにデータ...
-
配列データのレコード登録
-
php postgres Insert と updat...
-
PHPでMySQLのテーブルからcount...
-
Pro*Cの構文エラー
-
VBA ACCESS SQL...
-
MySQLでデータベースにデータin...
-
実行時エラー3131 FROM 句の構...
-
エクセルVBAについて
-
単純ですが、意外と穴?なデー...
-
PHPで[]の使い方について
-
データフォームウィザードで追...
-
PHP+MySQLでの配列のinsert文に...
-
VBA処理追加 こちらでご教示頂...
-
DBのデータを表示させたい
-
MySQLにデータが書き込まれない
-
phpのエラーについてです
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JAVA SQLServerException 列名 ...
-
<VB.NET>INSERT文でDBにデータ...
-
Pro*Cの構文エラー
-
Q&Aサイトを作成していてURLの...
-
ResultSetインターフェイスでの...
-
VBA ACCESS SQL...
-
データベースに存在するデータ...
-
VB.NET エラーになる箇...
-
insert1つの処理でもトランザ...
-
MySQLのINSERT時にたまに重複に...
-
INSERT,DELETEを同時に
-
like検索の複数キーワードで、...
-
PHP&MySQLでの文字列+数列の一...
-
mysqliを使ってデータベースを...
-
PHP初心者です。syntax error, ...
-
PHP+SQLite でSELECT文のWHERE...
-
php MySQL で、更新ボタンを押...
-
SQLインジェクション対策
-
phpでforeach ($stmt as $row)...
-
OR検索を実装したい
おすすめ情報