私はphp/sqlにかなり慣れていませんが、助けを求めるまで、これについて多くの調査を行いました.
基本的に、新しいユーザー名/電子メール/パスワード/ソルトを MySQL5 DB に挿入しようとしています。これは、エコーだけの私のテスト用 register.php です。
include 'dbcxn.php';
$usr = $_POST['user'];
$mail = $_POST['mail'];
$pwd = $_POST['p'];
$random_salt = hash('sha512', uniqid(mt_rand(1, mt_getrandmax()), true));
$password = hash('sha512', $pwd.$random_salt);
$insert_stmt = DB::cxn()->prepare("INSERT INTO members (username, email, password, salt) VALUES ($usr, $mail, $password, $random_salt)");
echo $insert_stmt->param_count." parameters\n";
「$insert_stmt = $mysqli->prepare」だけを使用してみましたが、同じことが起こります。それで、クラスDBを作りました。役立つ場合は、これが私の dbcxn.php です。
define("HOST", "");
define("USER", "");
define("PASSWORD", "");
define("DATABASE", "");
define("PORT", "");
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE, PORT);
class DB {
private static $mysqls;
private function __construct(){}
static function cxn() {
if( !self::$mysqls ) {
self::$mysqls = new mysqli(HOST, USER, PASSWORD, DATABASE, PORT);
}
return self::$mysqls;
}
}
他に何をしようとしているのか分からず、睡眠をとる必要があります:)。アドバイスをよろしくお願いします。