Ich bin ein Anfänger in OOP in PHP und ich versuche, mit meinem Code zu spielen. Als erstes wollte ich eine Basisklasse mit connect schreiben und Funktionen für die Datenbank einfügen. Also meine gewünschte Situation ist dies:OOP Mysqli Datenbankfunktionen
-Ich möchte auf Klasse erstellen, die controll verbinden und Funktionen einfügen wird. Das Problem ist, meine $ connect-Variable funktioniert nicht von einer anderen Funktion, also was könnte ich tun, um dies zu ermöglichen? Sie werden mehr durch den bereitgestellten Code verstehen.
<?php
class DB {
protected $dbhost = 'localhost';
protected $dbuser = 'root';
protected $dbpass = '';
protected $dbname = 'newdb';
public function connect()
{
$connect = new mysqli($this->dbhost, $this->dbuser, $this->dbpass, $this->dbname);
if($connect->error)
{
echo "Failed to connect";
}
else
{
echo "connected";
}
}
public function insert($name, $second)
{
$insert = "INSERT INTO posts (name, second) VALUES ('$name', '$second')";
if ($connect->query($insert) === TRUE)
{
echo "New record created successfully";
}
else
{
echo "Error: " . $sql . "<br>" . mysqli_connect_error();
}
}
}
require_once 'classes/DB.php';
$db = new DB;
if(isset($_POST['submit']))
{
$name = $_POST['name'];
$second = $_POST['second'];
$db->insert($name, $second);
}
?>
<form method="POST">
Add smth<input type="text" name="name"><br>
Also omg<input type="text" name="second"><br>
<input type="submit" name="submit">
</form>
Was ist mit dem Passieren als Parameter? –
Ich dachte darüber nach, aber ich kenne nicht die richtige Verwendung. Deshalb suche ich nach Hilfe. – Irfan
'$ connect' ist im lokalen Bereich dieser Funktion. Sie sind auch offen für SQL-Injektionen mit diesem Code. Sie sollten sich mit parametrisierten Abfragen beschäftigen, am besten, wenn Sie beginnen. http://php.net/manual/en/mysqli.quickstart.prepared-statements.php – chris85