みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

mysqlで変数を使う方法

SQL文にPHPの変数のように変動する値を指定することはできますでしょうか。

データベースから特定のレコードを拾ってきて
PHPのPOSTメソッドでその値を送信するシステムを作ろうとしています。

具体的には、データベースに名簿(IDと名前だけの簡単なものです)を
予め作っておき、送信ボタンをクリックしたユーザーのIDと紐付いている
名前を送信したいと考えています。

[MySQL]
table:meibo

id | name
------------
1 | itou
2 | yamada
3 | suzuki

[PHPソース](一部抜粋)
------------
$sql = mysql_query('SELECT * FROM meibo where id=【ここを変動させたい】', $connect);
$sql = mysql_fetch_array($sql);
$req->addPostData("user_name", $sql['name']);
------------

$idに操作しているユーザーのIDが代入されているとして
以下のようにmysql_queryの中で実行しているSELECT文に$idを利用することは可能でしょうか。

SELECT * FROM meibo where id=$id

もし上記のような方法が無理な場合、
代替案をご提案いただけると非常に助かります。

読みにくい文章で恐縮ですが、
どうかお助けください。

よろしくお願いします。

投稿日時 - 2011-11-22 14:36:32

QNo.7148105

すぐに回答ほしいです

質問者が選んだベストアンサー

$sql = mysql_query('SELECT * FROM meibo where id='.$id, $connect);

じゃないの?

投稿日時 - 2011-11-22 14:58:21

お礼

回答ありがとうございます。
上記方法でうまくいきました。
本当に助かります。
今後ともよろしくお願いします。

投稿日時 - 2011-11-22 17:18:39

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

idが数値なら
$sql=sprintf("select * from meibo where id=%d", $id);
$result = mysql_query($sql, $connect);
while ($row = mysql_fetch_assoc($result)) {
/* 処理内容 */.
}

idが文字列なら
$sql=sprintf("select * from meibo where id='%s'", mysql_real_escape_string($id));
SQLインジェクションには注意。

投稿日時 - 2011-11-22 15:52:34

お礼

回答ありがとうございます。
こういう方法もあるんですね。本当勉強になります。

今後ともよろしくお願いします。

投稿日時 - 2011-11-22 17:37:18

あなたにオススメの質問