저는 현재 PHP를 배우고 있으며 OOP를 처음 사용합니다. MySQL 쿼리 및 연결을 처리 할 개체를 만들려고합니다.PHP OOP 학습 곡선 - MySQL 객체 오류
이것은 내가 지금까지 만든 것입니다 :
class MySQLDatabase {
private $connection;
function __construct() {
$this->open_connection();
}
public function open_connection() {
$this->connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
if(mysqli_connect_errno()) {
die(
"Database connection failed: " . mysqli_connect_error() .
" (" . mysqli_connect_errno() . ")"
);
}
}
public function close_connection() {
if(isset($this->connection)) {
mysqli_close($this->connection);
unset($this->connection);
}
}
public function query($sql) {
$cleaned_sql = mysqli::real_escape_string($sql);
$result = mysqli_query($this->connection, $cleaned_sql);
$this->confirm_query($result);
return $result;
}
public function mysql_prep($string) {
$escaped_string = mysqli_real_escape_string($this->connection, $string);
return $escaped_string;
}
private function confirm_query($result) {
if (!$result) {
die("Database query failed.");
}
}
}
그리고 대중을 향한면에
이 (예상대로 확실 일들이 작동하도록 테스트를하고) : 현재$sql = "INSERT INTO users (id, username, password, first_name, last_name) ";
$sql .= "VALUES (1, 'jbloggs', 'secretpwd', 'Joe', 'Bloggs')";
$result = $database->query($sql);
, 난 그냥 출력을 얻을 : 데이터베이스 쿼리가 실패했습니다.
문제는 내 mysql_prep 함수와 관련이있는 것으로 보인다.
모든 조언을 크게 환영합니다.
미리 감사드립니다. 알렉스.
이 *처럼 뭔가에 다이()을 변경 : * - 당신은 실제 오류가 무엇인지 알아낼 필요 "현재, 나는 단지의 출력을 얻을 데이터베이스 쿼리가 실패했습니다.". –
@ Fred-ii- 오류가 내 mysql_prep 함수와 관련이있는 것 같습니다. 제거하면 문제가 없어집니다. – FruitWinder
완전한 쿼리가 아닌 변수를 정리해야합니다. – RiggsFolly