SQL文をユーザー定義関数でまとめたいのですが、うまくいきません。
以下の処理を全てfunction search() {
}の中に入れるのは間違っていますか? 関数名はsearchとしました。
try {
$sql = 'SELECT product.id, name, price, img, status, stock
FROM product
JOIN item_stock
ON product.id = item_stock.stock_id
WHERE status = 1';
$stmt = $dbh->prepare($sql);
$stmt->execute();
$result = $stmt->fetchALL();
$err_msg[] = ($keyword . 'を含む商品は見つかりませんでした。');
} catch (PDOException $e) {
$err_msg[] = '商品を取得できませんでした。';
}
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
みなさんの言ってることを要約して貴方の補足質問に答えるなら、
つまりは↓こういうことです。
function search ($dbh, $keyword ) {
// 処理
$result = $stmt->fetch(PDO::FETCH_ASSOC);
return $result;
}
$result = search($dbh, $keyword);
if(empty($result)){
$err_msg[] = ($keyword . 'を含む商品は見つかりませんでした。');
}
No.3
- 回答日時:
SQL内にありませんが、$keywordは引数として受け取るべきでしょうね。
あとモデル層の操作としては、問い合わせ結果をそのまま呼び出し元へ返却すべきです。
データがあった時、なかった時にどう制御するかは、その時によって異なるわけですから、その制御がモデル層と密に関わってはいけません。
No.2
- 回答日時:
ハマりそうな箇所が散見されます
ユーザー関数にするとして、$dbhなどをどう持ち込むか
戻り値を取り出すかが全然考慮されてなさそうです。
検索条件をうけとらないならprepareは不要ですqueryで十分。
fetchAllするときはassocを利用してください
try-catchは検索がヒットしたかしないかではありません
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#でDBの特定列をUpdate
-
VB.NET エラーになる箇...
-
mysqliを使ってデータベースを...
-
一度検索されたものに対するソ...
-
PHPでMySQLのテーブルからcount...
-
MYSQL UPDATE
-
PHPからデータベースに接続した...
-
MySQLにmd5が登録できません。
-
ResultSetインターフェイスでの...
-
spl拡張子保存
-
insert1つの処理でもトランザ...
-
VBAをつかってクエリの情報を抽...
-
PHP+MYSQL IF文の初歩
-
Resource id #3 をフィールドの...
-
実行時エラー3131 FROM 句の構...
-
PHPのプルダウンメニューにDBの...
-
MySQLでデータベースにデータin...
-
ヒアドキュメントでSQLを書く事...
-
zend(phpフレームワーク)でトラ...
-
select文
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
insert1つの処理でもトランザ...
-
Pro*Cの構文エラー
-
JAVA SQLServerException 列名 ...
-
<VB.NET>INSERT文でDBにデータ...
-
VB.NET エラーになる箇...
-
MySQLのINSERT時にたまに重複に...
-
一度検索されたものに対するソ...
-
ResultSetインターフェイスでの...
-
チェックボックスからの複数検...
-
PHP初心者です。syntax error, ...
-
PHP+SQLite でSELECT文のWHERE...
-
エクセルVBAのデータベース接続...
-
PHPよりMySQLの操作のコードの...
-
phpで複数の検索語を検索対象に...
-
php MySQL で、更新ボタンを押...
-
VBA ACCESS SQL...
-
C#でDBの特定列をUpdate
-
PHP&MySQLでの文字列+数列の一...
-
データベースに存在するデータ...
-
ASPでSQL文を使う場合に。
おすすめ情報
function search () {
// 処理
}
とすると、上記の()の中に何を入れればいいかが
よくわからないです。
関数名をsearchとして
function search () {
// 処理
}
とすると、上記の()の中に何を入れればいいかが
よくわからないです。