2016-12-13 3 views
0

テーブルにレコードを挿入しようとしていて、配列プッシュを使用してそのレコードの配列を作成しようとしていますが、使用するPHPでmysqliで挿入されたレコードの配列を作成できません

$insert_sql = "INSERT INTO PasswordResetRequest(email,encrypted_temp_password,salt,created_at) VALUES('$email','$encrypted_temp_password','$salt',NOW());"; 
$insert_query = mysqli_query($con,$insert_sql); 
$ins_result = array(); 
while($row = mysqli_fetch_array($insert_query)) { 
    array_push($ins_result, array(
     'email' => $row['email'], 
     'encrypted_temp_password' => $row['encrypted_temp_password'], 
     'salt' => $row['salt'], 
     'created_at' => $row['created_at'] 
    )); 
} 
if ($ins_result) { 
    $user["email"] = $email; 
    $user["temp_password"] = $random_string; 
    return $user; 
} else { 
    return false; 
} 

しかし、私はそれを実装する必要がありますか?

あなたは、その機能がtrueまたはfalseを返します何かを挿入する際

+0

[Little Bobby](http://bobby-tables.com/)によると*** [あなたのスクリプトはSQLインジェクション攻撃の危険にさらされています。](http://stackoverflow.com/questions/60174/how- php)*** MySQLi(http://php.net)の[prepared](http://en.wikipedia.org/wiki/Prepared_statement)のステートメントについて学びます。 /manual/ja/mysqli.quickstart.prepared-statements.php)。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません! [それを信じていない?](http://stackoverflow.com/q/38297105/1011527) –

+0

パスワードのセキュリティを処理するには、PHPの[組み込み関数](http://jayblanchard.net/proper_password_hashing_with_PHP.html)を使用してください。 5.5より小さいPHPバージョンを使用している場合、 'password_hash()' [互換パック](https://github.com/ircmaxell/password_compat)を使用することができます。 *** [パスワードをエスケープしない](http://stackoverflow.com/q/36628418/1011527)***を確認するか、ハッシュする前に他のクレンジングメカニズムを使用してください。パスワードを変更すると、パスワードが変更され、不要な追加のコーディングが発生します。 –

+0

insertクエリを実行した後、主キーがある場合は最後のinsert idを取得し、次に必要なレコードを取得するためのクエリを作成します。 – Ima

答えて

1

は、一つのことを覚えておいてください、ありがとうございました。真は挿入されたレコードを意味し、偽はエラーを意味する。

挿入したすべてのレコードを、試していると仮定して一覧表示したい場合。

あなたは2つの部分でそれを作る必要があります。

// insert record 
$insert_sql = "INSERT INTO PasswordResetRequest(email,encrypted_temp_password,salt,created_at) VALUES('$email','$encrypted_temp_password','$salt',NOW());"; 
$insert_query = mysqli_query($con,$insert_sql); 


// select and list all records 
$select_sql = "Select * from PasswordResetRequest"; 
$resultSet = mysqli_query($con, $select_sql); 
while($row = mysqli_fetch_array($resultSet)){ 
    array_push($ins_result,array('email'=>$row['email'],'encrypted_temp_password'=>$row['encrypted_temp_password'],'salt'=>$row['salt'],'created_at'=>$row['created_at'])); 
} 

私はあなたの問題を解決すると思います。

関連する問題