前提・実現したいこと
PHPでDBに接続する命令は分かるのですが、その接続する命令を関数化して関数のみのファイルにまとめる(共通処理)にはどのようなコードを書くといいんでしょうか?
単にfunction{}で接続文字列を囲むといいのでしょうか?
しかし、仮に囲んだとして、どのようにしたら中身の命令を実行できるのでしょうか?
追記
require_once()で下記のプログラムに接続したいのですが、エラーが出てきます。
dbhは書かない方がよかったのでしょうか?
一応このような形で追記しておきますことをご了承ください。
自分で何とかしてみます。
よろしくお願いします。
functions.php
<?php function db(){ $dsn = 'mysql:dbname=example;host=localhost'; $user = 'root'; $password = 'shapshap'; $dbh = new PDO($dsn, $user, $password); return $dbh; } ?>
エラー
Warning: Undefined variable $dbh in C:\xampp\htdocs\customer\c_search.php on line 26 Fatal error: Uncaught Error: Call to a member function query() on null in C:\xampp\htdocs\customer\c_search.php:26 Stack trace: #0 {main} thrown in C:\xampp\htdocs\customer\c_search.php on line 26
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
今のコードと、どのようにしたいかを書いていただけないでしょうか?
もっと「関数とは」という根本的なところから理解が必要では。
得られたアドバイスを理解できない懸念があります。PHPマニュアル確認してください。
ただ、接続文字列自体を関数に入れ込むメリットはかなり薄いかと。定数で済みます。
質問者さんのような状態だと、文章にしたときの語句と実態があっていないことは往々にしてあります。
用語が正しく使えてないとかそういう意味ですね。
ただし、回答者は言葉の通り取ります。文章で使われた言葉本来の意味のままとります。
そして文章に違和感を覚えることはよくあるのですが、結局質問者が何を表現したいかまでは正確にくみ取ることはできません。
なので、コードが必要です。もしくは絵や参考にした記事が必要です。
つらつらと覚束ない文章を書かれるよりも、コードや絵をドーンと提示して、どこのことをどう表現しているのかを説明してもらった方が助かるのです。
日常会話でもコミュニケーションにおいて、ちょっとした認識のズレが大きな誤解を生み、あらぬ方向にいくことはよくあります。
プログラムは書いたとおりにしか動かないので、その傾向がより顕著です。
エスパーして回答することも時にはありますがそれは「回答者の思い込み」でしかなく、
技術や経験が近いわけではないことのほうが多いこのQAサイトにおいてはお互いのすれ違いを生むことのほうが多いのです。
自己解釈をしなくていいように配慮することができれば解決も早く、
自身の理解にも繋がります。
回答者はあくまでプログラミングをより正しく理解しているだけの赤の他人でしかないので、
投げとけばどうにかなるわけではないのです。
赤の他人を過信しないようにしてください。書いたとおりにしか伝わりません。
そのための「質問するときのヒント」であり「推奨していない質問」含めた「ヘルプ」ページです。
よく、考えてみてください。自身の質問はどこまで伝わるように書けているか。
回答1件
あなたの回答
tips
プレビュー