나는 PHP에서 OOP의 초보자이며 코드를 가지고 놀려고한다. 그래서 내가하고 싶은 첫 번째 일은 데이터베이스에 대한 연결 및 삽입 함수를 사용하여 하나의 기본 클래스를 작성하는 것입니다. 따라서 원하는 상황은 다음과 같습니다.OOP mysqli 데이터베이스 함수
- 연결 및 삽입 기능을 제어 할 클래스를 만들고 싶습니다. 문제는 my $ 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