PHPのクラスで各メソッド毎にファイルを作成してデータベースにアクセスし、そこから出力するという処理を行いたいんですが
⓵mysqli_select_db() expects parameter 1 to be mysqli, string given
⓶mysqli_query() expects at least 2 parameters, 1 given
⓷mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given
と3つエラー表示されました
各mysqli関数でデータベースへ接続する為の要素が一部不足しているというのは理解できているんですが、その定義がどのようなものなのかがよく分かりません
データベースへアクセスする為のクラス(XXX.php)を作成し、require_once("XXX.php");でPHPの処理をする際にXXX.phpへ接続するようにしてみたんですが、書き方が違うようで作業が止まってしまっています
また、$X_obj = new~でオブジェクトを生成する際に「このオブジェクトはこのデータベースへ接続する」という定義をすれば成功するのではと思ったのですが、これも書き方が違うようでわけが分からなくなりました
PHP
1//メインのクラス 2<?php 3 require_once("XXX.php"); 4 5 if (isset($_POST['name'], $_POST['comment'], $_POST['bbs']) && $_POST['bbs'] == "post") { 6 require("XXX1.php"); 7 $p_obj = new Post("mysqli:host=XXX;XXX", "XXX", "XXX"); 8 $p_obj->name = $_POST['name']; 9 $p_obj->comment = $_POST['comment']; 10 $p_obj->post(); 11 } elseif (isset($_POST['bbs']) && $_POST['bbs'] == "update") { 12 require("XXX2.php"); 13 $u_obj = new Update("mysqli:host=XXX;XXX", "XXX", "XXX"); 14 $u_obj->name = $_POST['name']; 15 $u_obj->comment = $_POST['comment']; 16 $u_obj->chk = $_POST['chk']; 17 $u_obj->update(); 18 } elseif (isset($_POST['bbs']) && $_POST['bbs'] == "delete") { 19 require("XXX3.php"); 20 $d_obj = new Delete("mysqli:host=XXX;XXX", "XXX", "XXX"); 21 $d_obj->chk = $_POST['chk']; 22 $d_obj->delete(); 23 } 24 25 require("XXX4.php"); 26 $l_obj = new List_table; 27 $data = $l_obj->list(); 28 echo strlen($data); 29?>
追記
下記コードがデータベース接続のソースです
PHP
1<?php 2 class Db { 3 public $class; 4 public function connect() { 5 $this->class = mysqli_connect("XXX", "XXX", "XXX", "XXX") or die("NG"); 6 mysqli_select_db("XXX", $this->class); 7 } 8 9 public function close() { 10 mysqli_close($this->class); 11 } 12 } 13?>
下記コードは、MySQLI関数を使用しないで試しにオブジェクト指向型で改めてコーディングしてみたのですが、こちらも接続できませんでした
今回のコーディングで何が足りないのでしょうか
PHP
1<?php 2 class Db { 3 public $class; 4 public function connect() { 5 $dsn = 'mysql:dbname = XXX; host = XXX; charset = XXX'; 6 $user = 'XXX'; 7 $password = 'XXX'; 8 try { 9 $dbh = new PDO($dsn, $user, $password); 10 } catch (PDOException $e) { 11 die('Connect Error: ' . $e->getCode()); 12 } 13 } 14 15 public function close() { 16 mysqli_close($this->class); 17 } 18 } 19?>
回答2件
あなたの回答
tips
プレビュー