質問
-
フリー PHP+MySQL
【スターサーバー】DBに接続できない -
本文:
最近PHPの勉強を始めた初心者です。
ローカル環境で作成したサイトを公開したいと思い、スターサーバーを利用しています。
しかし、DBへの接続ができずに困っています。
【現状】
自作のサイト自体は表示されており、自作サイトのユーザー登録画面から登録をしようと思ってもDBには何も登録されません。
自分で書いた「try〜catch」での例外処理がされ、自作のエラー文が表示されます。(その他にエラーは何も表示されません)
【コード】
function.phpとして下記のものを設定し、それぞれDBへ接続する際に「$dbh = dbConnect();」として呼び出しています。
●function.php↓
function dbConnect(){
$dsn = 'mysql:dbname=****_say;host=mysql*.php.starfree.ne.jp;charset=utf8';
$user = '****_****(MYSQLユーザー名)';
$password = '******(MYSQLパスワード)';
$options = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true,
);
$dbh = new PDO($dsn, $user, $password, $options);
return $dbh;
}
●ユーザー登録ページ↓
if(empty($err_msg)){
try{
$dbh = dbConnect();
*INSERT文など
}catch(Exception $e){
error_log('エラー発生:' . $e->getMessage());
$err_msg['○○'] = MSG○○;
}
何かコードの書き方など根本的に間違っているのでしょうか?
データベース名や、ユーザー名、パスワード等は間違ってはいないと思うのですが。。
よろしくお願いいたします。 - 緊急度:緊急投稿者:sample8792さん投稿時間:2020/08/16 10:34
回答 No.10548
-
本文:
平素はネットオウルをご利用いただき誠にありがとうございます。
ネットオウル運営チームです。
本ご質問は一定期間新たな回答がなかったため
運営チームで締め切らせていただきました。
■質問の締め切りについて
Q&A掲示板はユーザー様同士の交流掲示板です。
回答がもらえた場合、回答者へお礼コメントをしましょう。
問題が解決した際にはベストアンサーを選び、
質問を締め切ってください。
■再度のご質問について
ご質問が未解決の場合、「ワンポイント!」を参考に、
再度質問してみてください。
【ワンポイント!】
メールやFTPの設定がうまくいかない場合、
ネットオウルIDやサーバーIDなどのお客様情報を公開しない範囲で、
現在の設定内容を出来るだけ詳しく書いてみましょう。
設定内容のミスを指摘してもらえるかもしれません。
エラーが出てうまくいかない場合、
エラーメッセージの内容を書いてみましょう。
エラーメッセージにはエラー原因が詳しく書かれていることが多く、
問題の解決につながる回答が得られるかもしれません。
■ベストアンサーについて
ご質問の締め切りに際して、運営チームにて
ベストアンサーを選んでおります。
※ベストアンサーの回答者様には通常と同様のポイントが
付与されています。
--ネットオウル運営チーム-- - 投稿者:ネットオウル運営 投稿時間:2020/09/08 22:58
回答 No.10502
この回答がベストアンサーです
■
簡単なサンプル作って、動作確認すれば?
DB接続部分が怪しいとおもうのなら、その部分だけ動作させて
動作することを確認すれば?
■
DB接続確認
https://secure.netowl.jp/bbs/detail.cgi?td=4540
========
動作検証用サンプル
========
//自身の環境に合わせて書き換える
$hostname = "mysql1.star.ne.jp"; //MySQLホスト名
$dbname ="test_db"; //データベース名
$username = "test_web"; //MySQLユーザ名
$password = "xxxxxxx"; //MYSQLのパスワード
//------
$dsn = "mysql:host=".$hostname.";dbname=".$dbname;
try {
$dbh = new PDO($dsn, $username, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
■
DBに登録できないのは、
>*INSERT文など
の処理の部分でエラーが発生して、INSETできてないとかいう可能性もあるよね?