【问题标题】:Insert XML Data into Mysql Table Using PHP with Ajax使用 PHP 和 Ajax 将 XML 数据插入 Mysql 表
【发布时间】:2025-11-29 11:05:01
【问题描述】:

我正在使用下面的 PHP 文件将 XML 上传到 MySQL 数据库,但问题是我的表名是 Con-1 并且无法使用它。 我在下面的行中有错误:

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
    )

请帮我解决一下

    <?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;

    ?>

【问题讨论】:

    标签: php mysql ajax xml


    【解决方案1】:

    您应该能够使用变量变量来做到这一点,所以首先将Con-1 分配给一个变量,然后用这个变量替换分配中的名称...

       $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
        )
       );
    

    【讨论】: