Я новичок в ООП в PHP, и я пытаюсь играть с моим кодом. Поэтому первое, что я хотел сделать, это написать один базовый класс с функциями подключения и вставки для базы данных. Поэтому моя желаемая ситуация такова:Функции базы данных OOP mysqli
-Я хочу создать класс, который будет управлять функциями подключения и вставки. Проблема в том, что моя переменная $ connect не работает с другой функцией, так что я могу сделать, чтобы сделать это возможным? Вы будете более подробно понимать код.
<?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>
Как насчет передачи в качестве параметра? –
Я думал об этом, но я не знаю, как правильно использовать. Вот почему я ищу помощь. – Irfan
'$ connect' находится в локальной области этой функции. Вы также будете открыты для SQL-инъекций с помощью этого кода. Вы должны посмотреть на использование параметризованных запросов, лучше всего изучить его, когда вы начинаете. http://php.net/manual/en/mysqli.quickstart.prepared-statements.php – chris85