質問: php+mysql sql文実行について データベースに「日付」「文章」を登録し、今日の日付に対応した文章が表示される仕組み(正確には朝の5時に変更)を作りたいと考えております。 以前は日付をタイトルとしたtxtファイルを作成し、その中身を読み込ませる仕組みだったのですが、今回mysqlを使用して同様のものを作成できればと思い試行錯誤しております。 データベースは 「maxim」というテーブルの中に、 date main 071018 (文章) 071019 (文章) 071020 (文章) 071021 (文章) のように格納してあります。 date:主キー、varchar(6)、not null main:text、not null 作成したスクリプトは以下の通りですが、これを実行すると「エラー」が表示されてしまいます。 $dateによる文字列の取得、dbへの接続までは、echo、or dieにて確認済、またsql文をphpmyadminから実行した場合($dateを071018に書き換えて)、こちらも正常に取得できたのですが。 $dateをsql文に記述する際の囲みの問題かとも思い、「''」や「()」や「[]」で囲ってもみたのですがだめでした。 どなたかお知恵を拝借できますでしょうか。 宜しくお願い致します。 *サーバー、mysqlはともに「ロリポップ」を使用しております。 テスト $res"; mysql_close($conn); ?>
回答: 試していませんが、ざっと見た感じ $dbnameがどこにも使われていないですね。 とりあえずif(!$conn){//mysql接続エラー}、とした上で $conndb = mysql_select_db($dbname); if(!$conndb){//db接続エラー} ここまでやってmysqlとdbに接続完了です。 mysql_queryにmysql_connectは渡せないのではないかな? http://jp.php.net/manual/ja/function.mysql-query.php なのでクエリ発行の中ではsql文のみ渡して下さい。 ついでに、クエリ発行しただけだと echo "$res"; だけでは結果が得られません。 mysql_resultかmysql_fetch_rowなどで 中身を配列に入れてから表示させてみてください。 もう一個... echo "$res"; だと$resもと同じように ダブルクォーテーションで囲んでしまってるので、 これもこのままでは表示されないと思います。 変数部分を".."で囲むか、別にechoしてあげてください。 細かく言うとlimit 1しておいたほうが良いかなぁとか 色々ちょこちょこありますが、 とりあえずここまでやれば動くかと思います。