I have the following code to have the records of a database:
<?php
include '__conexion.php';
require_once 'funciones/passwordLib.php'; // Libreria de PHP5.5 Hash de contraseñas
ini_set('max_execution_time', 300); //300 seconds = 5 minutes
//Sentencia.
$stmt = $conexion->prepare("SELECT contrasena FROM usuarios");//Selecciono solo los datos a utilizar, en tu caso la contraseña.
//Ejecutar sentencia.
$stmt->execute();
//Ligamos resultado BD.
$stmt->bind_result($contrasena_txt_plano);
while ($stmt->fetch()) {
//Creamos nuestro Hash.
$hash = password_hash($contrasena_txt_plano, PASSWORD_BCRYPT);//BCRYPT, que tendrá siempre 60 caracteres. (¡Imporante comprobar que tu columna contrasena en caso varchar pueda obtener 60 caracteres!
//Creo un array, con el hash y la contrasena de texto plano.
$arr[] = ['contrasena' => $contrasena_txt_plano, 'hash' => $hash];
echo "seleccionadno";
}
$stmt->close();//Cerramos sentencia 'select'.
//Recorremos el array, para hacer nuestro 'UPDATE'.
for ($i=0; $i<count($arr); $i++) {
//Actualizamos datos.
$actualiza = $conexion->prepare("UPDATE usuarios SET hash=? WHERE contrasena=?");
$actualiza->bind_param("ss",$arr[$i]['hash'],$arr[$i]['contrasena']);
$comprobar = $actualiza->execute();
//Comprobamos si se ejecuto nuestra sentencia.
if (false===$comprobar) {
exit('Nuesta sentencia UPDATE fallo: ' . htmlspecialchars($actualiza->error));
} else {
echo "Los datos se actualizaron correctamente.<br />";
}
$actualiza->close();
}
?>
I get the error HTTP ERROR 500
when executing it.
HTTP ERROR 500
: Programming error.
This file was brought from a server where PHP 5.4.0 was installed and it was included in a PHP 5.3.3 system
Identify the error in this line:
$arr[] = ['contrasena' => $contrasena_txt_plano, 'hash' => $hash];
What would be the correct formatting of this line to serve in PHP 5.3.3