php
1<?php 2define('DB_HOST', 'localhost'); 3define('DB_NAME', 'test_01'); 4define('DB_USER', 'root'); 5define('DB_PASSWORD', 'root'); 6 7// 文字化け対策 8$options = array(PDO::MYSQL_ATTR_INIT_COMMAND=>"SET CHARACTER SET 'utf8'"); 9 10// PHPのエラーを表示するように設定 11error_reporting(E_ALL & ~E_NOTICE); 12 13// データベースの接続 14try { 15 $dbh = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASSWORD, $options); 16 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 17} catch (PDOException $e) { 18 echo $e->getMessage(); 19 exit; 20} 21 22$sql="SELECT * FROM mondai"; 23$stmt= $dbh->prepare($sql); 24$stmt->execute(); 25 26while(1){ 27 $result = $stmt->fetch(PDO::FETCH_ASSOC); 28 if($result==false){ 29 break; 30 } 31 print '<div class="card card-body"><a href="1_1.php">'.$result[top].'</a></div>'; 32} 33?>
まずはDBの接続を関数で呼び出せるようにしたいと考え、このように変更しました。
しかし、上のコードで表示されていたものが表示されなくなり、つまずいてしまいました。
php
1<?php 2define('DB_HOST', 'localhost'); 3define('DB_NAME', 'test_01'); 4define('DB_USER', 'root'); 5define('DB_PASSWORD', 'root'); 6 7// 文字化け対策 8$options = array(PDO::MYSQL_ATTR_INIT_COMMAND=>"SET CHARACTER SET 'utf8'"); 9 10// PHPのエラーを表示するように設定 11error_reporting(E_ALL & ~E_NOTICE); 12 13// データベースの接続 14function db() { 15 try { 16 $dbh = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASSWORD, $options); 17 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 18 } catch (PDOException $e) { 19 echo $e->getMessage(); 20 exit; 21 } 22 return $dbh 23} 24$hoge=$this->db(); 25$sql="SELECT * FROM mondai"; 26$stmt= $hoge->prepare($sql); 27$stmt->execute(); 28 29while(1){ 30 $result = $stmt->fetch(PDO::FETCH_ASSOC); 31 if($result==false){ 32 break; 33 } 34 print '<div class="card card-body"><a href="1_1.php">'.$result[top].'</a></div>'; 35} 36?>
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/09 07:33
2019/12/09 07:34
2019/12/09 07:39
2019/12/09 07:43
2019/12/09 07:44