PHPのクラスで各メソッド毎にファイルを作成してデータベースにアクセスし、そこから出力するという処理を行いたいんですが、ここでお聞きしたいのが大きく2つあります
⓵メインのクラスでParse error: syntax error, unexpected '$i' (T_VARIABLE)
とエラー表示されました
原因がよく分からないんですが、$iの何がエラーなんでしょうか
⓶全クラスについてなんですが、手続き型でコーディングしていた箇所をオブジェクト指向型に全て書き換えてみて、クラス分けしている為に直ぐエラーに気付けないんですが、オブジェクト指向型とはこのようなコーディングで正しいのでしょうか
初めてこの書き方にしたため、本などで見比べても理解しづらい点もあるのでご指摘お願いします
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(); 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(); 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(); 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//XXX.php データベース接続クラス 2<?php 3 class Db { 4 public $class; 5 public function connect() { 6 $mysqli = new mysqli("XXX", "XXX", "XXX", "XXX"); 7 $mysqli->select_db("XXX"); 8 } 9 10 public function close() { 11 $mysqli->close(); 12 } 13 } 14?>
PHP
1//XXX1.php 2<?php 3 require_once("XXX.php"); 4 5 class Post extends Db { 6 public $name; 7 public $comment; 8 public function post() { 9 $this->connect(); 10 $stmt = $mysqli->prepare("INSERT INTO XXX(name, comment) VALUES(?, ?)"); 11 $stmt->bind_param('ss', $_POST["name"], $_POST["comment"]); 12 $stmt->execute(); 13 $this->close(); 14 } 15 } 16?>
PHP
1//XXX2.php 2<?php 3 require_once("XXX.php"); 4 5 class Update extends Db { 6 public $name; 7 public $comment; 8 public $chk; 9 public function update() { 10 $this->connect(); 11 for($a = 0; $a < count($this->chk); $a++) { 12 $stmt = $mysqli->prepare("UPDATE XXX SET name = '$this->name', comment = '$this->comment' WHERE id = '".$this->chk[$a]."'"); 13 } 14 $stmt->execute(); 15 $this->close(); 16 } 17 } 18?>
PHP
1//XXX3.php 2<?php 3 require_once("XXX.php"); 4 5 class Delete extends Db { 6 public $chk; 7 public function delete() { 8 $this->connect(); 9 for($b = 0; $b < count($this->chk); $b++) { 10 $stmt = $mysqli->prepare("DELETE FROM XXX WHERE id = '".$this->chk[$b]."'"); 11 } 12 $stmt->execute(); 13 $this->close(); 14 } 15 } 16?>
PHP
1//XXX4.php 2<?php 3 require_once("XXX.php"); 4 5 class List_table extends Db { 6 public $result; 7 public $row; 8 public function bbslist() { 9 $this->connect(); 10 $sql = "SELECT * FROM XXX ORDER BY time DESC"; 11 $result = $mysqli->query($sql) 12 $i = 0; 13 $this->result = null; 14 while(row = $result->fetch_assoc($sql)) { 15 $this->result[$i] = array('name' => $this->row['name'], 'comment' => $this->row['comment']); 16 $i++; 17 } 18 $this->close(); 19 } 20 } 21?>
追記
XXX4.phpです
他のクラスのも念の為訂正します
回答5件
あなたの回答
tips
プレビュー