doucheng2053 2018-02-03 08:28
浏览 89
已采纳

使用PHP和Ajax将XML数据插入到Mysql表中

I am using the below PHP file to upload XML to MySQL database, but the issue is my table name is Con-1 and cannot use it. I have error in the below line:

array(
     ':name'   => $data->Con-1[$i]->name,
     ':address'  => $data->Con-1[$i]->address,
     ':gender'  => $data->Con-1[$i]->gender,
     ':designation' => $data->Con-1[$i]->designation,
     ':age'   => $data->Con-1[$i]->age
    )

please help me to solve it

    <?php
//import.php
sleep(3);
$output = '';
if(isset($_FILES['file']['name']) &&  $_FILES['file']['name'] != '')
{
 $valid_extension = array('xml');
 $file_data = explode('.', $_FILES['file']['name']);
 $file_extension = end($file_data);
 if(in_array($file_extension, $valid_extension))
 {
  $data = simplexml_load_file($_FILES['file']['tmp_name']);
  $connect = new PDO('mysql:host=localhost;dbname=testing','root', '');
  $query = "
  INSERT INTO `Con-1`
   (name, address, gender, designation, age) 
   VALUES(:name, :address, :gender, :designation, :age);
  ";
  $statement = $connect->prepare($query);
  for($i = 0; $i < count($data); $i++)
  {
   $statement->execute(
    array(
     ':name'   => $data->Con-1[$i]->name,
     ':address'  => $data->Con-1[$i]->address,
     ':gender'  => $data->Con-1[$i]->gender,
     ':designation' => $data->Con-1[$i]->designation,
     ':age'   => $data->Con-1[$i]->age
    )
   );

  }
  $result = $statement->fetchAll();
  if(isset($result))
  {
   $output = '<div class="alert alert-success">Import Data Done</div>';
  }
 }
 else
 {
  $output = '<div class="alert alert-warning">Invalid File</div>';
 }
}
else
{
 $output = '<div class="alert alert-warning">Please Select XML File</div>';
}

echo $output;

    ?>
  • 写回答

1条回答 默认 最新

  • doqdcks3948 2018-02-03 11:02
    关注

    You should be able to do it using variable variables, so first assign Con-1 to a variable and then substitute this variable for the name in the assignment...

       $var = 'Con-1';
       $statement->execute(
        array(
         ':name'   => $data->$var[$i]->name,
         ':address'  => $data->$var[$i]->address,
         ':gender'  => $data->$var[$i]->gender,
         ':designation' => $data->$var[$i]->designation,
         ':age'   => $data->$var[$i]->age
        )
       );
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件