As title say i'm starting to learn object oriented aspect of PHP. In this regard i made small "exercise" of sort "translating" one of my php functions into oo mode of php. I'm asking of your kind folks is there any recommendations you can give me concerning my predicament.
Example of non-oo PHP:
<?php
function pristup($servername, $username, $password, $dbname, $sql){
$conn=new mysqli($servername, $username, $password, $dbname);
if($conn->connect_error){
die("Neuspela konekcija: ".$conn->connect_error);
}
$result = $conn->query($sql);
if ($result == TRUE) {
//echo "Uspela konekcija";
} else {
echo "Neuspešno izvršavanje upita: " . $conn->error;
}
return $result;
$conn->close();
}
?>
Example of this done in object oriented manner:
<?php
class konekcija{
private $servername;
private $username;
private $password;
private $dbname;
private $sql;
//Setter functions
public function setServername($par){
$this->servername = $par;
}
public function setUsername($par){
$this->username = $par;
}
public function setPassword($par){
$this->password = $par;
}
public function setDBname($par){
$this->dbname = $par;
}
public function setSQL($par){
$this->sql = $par;
}
//Getter functions
public function getServername() {
return $this->servername;
}
public function getUsername() {
return $this->username;
}
public function getPassword() {
return $this->password;
}
public function getDBname() {
return $this->dbname;
}
public function getSQL() {
return $this->sql;
}
//Function that executes query.
public function pristup($server_name, $user_name, $pass_word, $db_name, $sql_query){
$conn=new mysqli($server_name, $user_name, $pass_word, $db_name);
if($conn->connect_error){
die("Neuspela konekcija: ".$conn->connect_error);
}
$result = $conn->query($sql_query);
if ($result == TRUE){
echo "Uspela konekcija";
}
else{
echo "Neuspešno izvršavanje upita: " . $conn->error;
}
return $this->$result;
$conn->close();
}
}
$kon = new konekcija(); //Creation of an object.
//Setting values.
$kon -> setServername("localhost");
$kon -> setUsername("root");
$kon -> setPassword("");
$kon -> setDBname("test");
$kon -> setSQL("CREATE TABLE example(
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)"
);
//Getting values and inserting them into class method.
$kon -> pristup($kon->getServername(), $kon->getUsername(), $kon->getPassword(), $kon->getDBname(), $kon->getSQL());
?>
This works.What i'm asking is code any good? Is there better/more established way of doing this? Any advice will be appreciated. PS: I'm getting "Notice: Undefined property: konekcija::$1 in C:\xampp\htdocs\www\klase\tab_klass.php on line 87" why is this happening?