www.state-it.info

Gran base de respuestas a las preguntas de los desarrolladores
Header decor

Cómo ejecutar un Insert con un array de php?

appendicit 2018-11-06 03:19:35

hola. Hay muy antigua de php sitio web, se realizan pequeñas mejoras, apareció el error de no comprender de qué se trata.

Para el ejemplo - este código PHP:

$_POST['act'] = 'registration';
$_POST['name'] = 'Слава';
$_POST['email'] = '[email protected]';
$_POST['pass'] = '12345';
$_POST['phone'] = '+7 (222) 333-33-33';

include '../config/config.php';

$mysql = mysql_connect($host, $user, $pass);
mysql_select_db($mysql_db);
mysql_query("SET NAMES utf8");

$name = mysql_real_escape_string($_POST['name']);
$email = mysql_real_escape_string($_POST['email']);
$pass = mysql_real_escape_string($_POST['pass']);
$phone = mysql_real_escape_string($_POST['phone']);
$key = md5($email.time());

$adduser = array('name'=>$name, 'email'=>$email, 'pass'=>md5($pass), 'phone'=>$phone, 'key'=>md5($email.time()), 'date'=>date('Y-m-d H:i:s'));
mysql_query("INSERT INTO users_tmp SET '".$adduser."'") or die(mysql_error());

Pido por el código de no criticar, esto es puramente para el ejemplo.

el Resultado de la ejecución de este кода:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''Array'' at line 1


print_r($adduser)
Array ( [name] => Слава [email] => [email protected] [pass] => 166ccb0dds2a706c4c34h43191f84e7b [phone] => +7 (222) 333-33-33 [key] => c7c9c02e80b83fc6865aa84aa3406f1b [date] => 2018-11-06 02:12:10 )


la Estructura de la base de datos:
5be0de07dfdad976158625.jpeg

Que aquí no es así, por favor

Total answers: 2

klubben 2018-11-06 04:06:09

se necesita una cadena en lugar de un array, así:

$adduser = "`name` = '".$name."', `email` = '".$email."', `pass` = '".md5($pass)."', `phone` = '".$phone."', `key` = '".md5($email.time())."', `date` = '".date('Y-m-d H:i:s')."'";
	
mysql_query("INSERT INTO users_tmp SET ".$adduser) or die(mysql_error());


Y aquí, sin duda será un error, pero no me di cuenta de que quería hacer
$email.time()

appendicit 2018-11-06 04:10:53

Todo bien, gracias.
Los errores no se porque hay md5 :)


zzzmmtt 2018-11-06 09:06:26

Sospecho que el time() aquí como la sal se utiliza una simple concatenación de jabón y una marca de tiempo, de esto se toma el hash.


klubben 2018-11-06 09:42:49

zzzmmtt, por supuesto, usted tiene razón, "$email.time()" que es por la llamada al método adoptado. Demasiado джаваскрипта :)


zzzmmtt 2018-11-06 09:09:32

Bueno y sobre el tema, en principio, ya han respondido, formen una fila y usted será feliz. O como alternativa, utilice algún ORM, en el caso extremo de PDO. Allí y prepare decir, "fuera de la caja", skormili consulta con плейсхолдерами y la matriz de coincidencias плейсхолдер = valor de lo.

Preguntas relacionadas:

Footer decor

© www.state-it.info | Base of answers to questions for developers and programmers.