2015-09-25 75 views
0

这些是保存数据的两个变量,我想在保存数据库和序列化之前保存数据。如果我只保存一个变量ex $ add_item_overview ..总览的序列化数据将保存,但另一个变量不是..并且它给了我在我声明的每个参数中一个未定义的错误。如何在php中保存多个序列化数据mysql mysql

$add_item_overview = array(
     "item_brand" => $_POST['brand'], 
     "item_model" => $_POST['model'], 
     "item_submodel" => $_POST['submodel'], 
     "item_price" => $_POST['price'], 
     "item_yearmodel" => $_POST['year'], 
     ); 

    $add_item_specs = array(
     "engine_capacity" => $_POST['engine_capacity'], 
     "engine_type" => $_POST['engine_type'], 
     "engine_compression" => $_POST['engine_compression'], 
     "engine_broke" => $_POST['engine_broke'], 
     "performance_power" => $_POST['performance_power'], 
     "performance_torque" => $_POST['performance_torque'], 
     ); 

这是我的序列化变量和ff sql语句。

$add_item_overview_serialize = serialize($add_item_overview); 
$add_item_specs_serialize = serialize($add_item_specs); 

$sql = "INSERT INTO item_newcar_temp(item_overview,item_specs) VALUES ('". $add_item_overview_serialize ."','" . $add_item_specs_serialize . "')"; 
+0

,如果你不从PHP后净化你的输入,那么你将*可能*补习班与二级SQL注入攻击你的数据库(定时炸弹等待直到更高版本) – Drew

回答

0

您将SQL中的这两个变量用逗号连接起来,这会导致错误发生。因为Mysql认为它是用逗号分隔的两列。

您可以使用此代码

$add_item_overview_serialize = serialize($add_item_overview); 
$add_item_specs_serialize = serialize($add_item_specs); 

$final_serialize = $add_item_overview_serialize.",".$add_item_specs_serialize; //First concatenate them then use in SQL. 

$sql = "INSERT INTO item_newcar_temp(item_specs) VALUES ('". $final_serialize . "')"; 
+0

感谢先生,这对我有用:D – dextree