私は現在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