Проблем с ООП код

pro12

Registered
Това ми е кода за връзка с дб и извеждане от нея.
PHP:
<?php
  class Sel {
	  function __construct(){
		  $conn = new mysqli("localhost", "root", "root", "gallery"); 
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
if(!$conn->set_charset("utf8")){
   printf('Error loading \"Utf-8"\ charset',$conn->error);
}
	  }
	  
	  function view($tname)
	  {
		  $sql = "SELECT id, pic1, pic2 FROM ".$tname;
          $result = $conn->query($sql);
		  return $result;
	  }
  }
  $pbe = new Sel();
   $result= $pbe->view("zaqvka");
   while($row = $result->fetch_assoc()) {
   echo'
			<a href="adp/'.$row['pic1'].'"><img src="adp/upload/'.$row['pic2'].'" alt="" title="Beautiful Image" /></a>
			';
    }
?>
И ми дава тези две грешки. Notice: Undefined variable: conn in C:\xampp\htdocs\site\class.php on line 17

Fatal error: Call to a member function query() on null in C:\xampp\htdocs\site\class.php on line 17
Това е реда
PHP:
          $result = $conn->query($sql);
 
Така дефинирано $conn не е достъпна за всички методи, а е локално към конструктора.

Декларирай си едно пропърти:
Код:
private $conn;
И после в конструктора я дефинирай:
Код:
$this->conn = new (...);
и си я викай в другите методи с
Код:
$this->conn

Погледни за variable scopes.
 
pro12 каза:
Благодаря за помощта! А как да неправия по сигурна връзката с дб?
Това вече е нова тема.

Какво разбираш под "сигурна връзка с БД"? И защо искаш да я правиш по-сигурна?
 

Back
Горе