への移行は、これがデータベースへの正しい接続方法ですか?手続き型MySQLiインターフェースからオブジェクトベースの
<?php
class Connect {
private $servername;
private $serveruser;
private $password;
private $database;
function __construct($servername, $serveruser, $password, $database)
{
$this->servername = $servername;
$this->serveruser = $serveruser;
$this->password = $password;
$this->database = $database;
}
function conn()
{
try {
$conn = new mysqli($servername, $serveruser, $password, $database);
echo "conn success";
}
catch(Exception $e)
{
echo "ERROR: " . $e->getMessage();
}
}
}
?>
そして、私は他の.phpファイルで$ CONNにアクセスする必要があるならば、私は、手続きの方法から、実施例をどのように行うだろう?$username = mysqli_real_escape_string($conn,$_POST['username']);
この文字列は、我々はOOPメソッドを使用する場合のようになりますどのように?
P.S. PDOについて何も言わないでください。
'$ conn'を' conn() 'メソッドのローカルではなく、クラスの非公開属性にします。接続した後、クラス内の他のメソッドは '$ this-> conn'を参照できます。 –
MySQLiがエラー時に例外をスローする可能性があります:http://php.net/manual/en/mysqli-driver.report-mode.php ..いいえ、正しい方法ではありません。あなたはクラスのラッパーを作ろうとしていますが、それはすでに完全にサービス可能です。そしてその愚かな古代の「本当のエスケープ」機能の代わりに、[prepared statements](https://www.youtube.com/watch?v=nLinqtCfhKY)を使うべきです。 –
また、[詳しい説明書を読む](http://php.net/manual/en/mysqli.real-escape-string.php)をご覧ください。コード例は、準備されたステートメントを使用する代わりに安全でないオプションを使用することを主張する場合、エスケープ関数、イベントを呼び出すためのオブジェクト指向インターフェイスの使用方法を示しています。/ –