混乱しています。助けてください。
mysqlはもう古いよ・・・ということで、PDOに書き換えています。
select文に$や%は使わない方がいいとのことでしたが、次のコードはどうかきかえればいいのでしょうか?
<?php
//値をうけとる
$a=$_POST['a'];
$b=$_POST['b'];
$c=$_POST['c'];
//WHERE以下の文章
$check=""; //←ここです
if(isset($a)){$check=$check."and menu like '%りんご%' ";}
if(isset($b)){$check=$check."and menu like '%みかん%' ";}
if(isset($c)){$check=$check."and menu like '%ばなな%' ";}
if(empty($check)){
$meirei="SELECT * FROM shop";
}else{
$check = substr($check, 4);
$meirei="SELECT * FROM shop WHERE $check;"; //←ここです
}
?>
今回初めてPDOを使いはじめたので、本当に初心者です。
いろんなサイトをよんでみたもののだんだん悲しくなってくるほどわかりません。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
文脈からあまりわからないのですが、結果的にPDOを使いたいのですか?
サンプル
//値をうけとる
$a=$_POST['a'];
$b=$_POST['b'];
$c=$_POST['c'];
//WHERE以下の文章
$check="";
if(isset($a)){$check="and menu like '%りんご%' ";}
if(isset($b)){$check="and menu like '%みかん%' ";}
if(isset($c)){$check="and menu like '%ばなな%' ";}
if(empty($check)){
$meirei="SELECT * FROM shop";
}else{
//$check = substr($check, 4); //ここはあまり理解できなかったのでコメントアウトします。
$meirei="SELECT * FROM shop WHERE ".$check;
}
try{
//dsn変数 hostはサーバ dbnameはデータベース名 charsetは文字コード
$dsn = "mysql:host=localhost;dbname=sample;charset=utf8";
//データベースのユーザー名
$user = "root";
//データベースのパスワード
$password = "sample";
$pdo = new PDO($dsn,$user,$password);
$stmt = $pdo -> query($meirei);
while($row = $stmt -> fetch(PDO::FETCH_ASSOC)){
echo $row['情報の取り出したいカラム名'];
}
} catch (PDOException $e) {
exit('ERROR : '.$e->getMessage());
}
ということですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- 英語 翻訳お願いします。 3 2022/10/05 22:10
- Visual Basic(VBA) VBAでのループ順序について 3 2023/03/13 10:55
- FX・外国為替取引 mql4のコンパイルエラー箇所の修正お願いします。 1 2023/03/15 16:14
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- JavaScript 正規表現について質問です。条件に合う場合はtrueを返したい 3 2022/10/06 23:02
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- 英語 BIG CITY LIFE Look at the title of the text. Use a 2 2022/05/17 22:07
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
php MySQL で、更新ボタンを押...
-
SQLインジェクション対策
-
<VB.NET>INSERT文でDBにデータ...
-
Pro*Cの構文エラー
-
ResultSetインターフェイスでの...
-
cakePHPでSQLが実行できない。
-
VBA ACCESS SQL...
-
INSERT,DELETEを同時に
-
Q&Aサイトを作成していてURLの...
-
insert1つの処理でもトランザ...
-
PHPからデータベースに接続した...
-
何種類かのチェックボックスグ...
-
mysqliを使ってデータベースを...
-
トランザクション処理
-
PHPシステムでSQLのUPDATEがあ...
-
MySQLでデータベースにデータin...
-
実行時エラー3131 FROM 句の構...
-
VBAをつかってクエリの情報を抽...
-
mysql_fetch_objectの書き方を...
-
DBで検索結果に該当するデータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JAVA SQLServerException 列名 ...
-
Q&Aサイトを作成していてURLの...
-
<VB.NET>INSERT文でDBにデータ...
-
insert1つの処理でもトランザ...
-
Pro*Cの構文エラー
-
ResultSetインターフェイスでの...
-
データベースに存在するデータ...
-
PHP&MySQLでの文字列+数列の一...
-
VBA ACCESS SQL...
-
phpで複数の検索語を検索対象に...
-
like検索の複数キーワードで、...
-
MySQLのINSERT時にたまに重複に...
-
C# で発生したException.Messag...
-
PHP+PDO+MYSQL で実行されたSQ...
-
PHPのUndefined index や varia...
-
INSERT,DELETEを同時に
-
配列をループさせてUPDATE
-
VB.NET エラーになる箇...
-
php postgres Insert と updat...
-
C#でDBの特定列をUpdate
おすすめ情報
ありがとうございます!
PDO たすかりました!!
コメントアウトされたコードのすぐ下の
$meireiに$checkがあってもいいのですか?
$checkの中に、likeや%が含まれているので使えないかと思い、どのように条件だしをすればよいのかなやんでいました。