首页 > 解决方案 > 上服务器后更新单条记录PARSE ERROR?

问题描述

我正在做一个简单的数据库应用程序,其中存储了人们的数据。如果我想更新特定人的数据,我会收到错误

解析错误:语法错误,第 20 行 /home/netcom85/domains/sieci-netcom.pl/public_html/updatesingle.php 中的意外 '['

在 localhost 上一切正常,在安装服务器后出现这样的错误。

更新客户端.php

 <?php foreach ($result as $row) : ?>
                    <tr>
                      <td style="border: 2px solid black"><?php echo ($row["id"]); ?></td>
                      <td style="border: 2px solid black"><?php echo ($row["firstname"]); ?></td>
                      <td style="border: 2px solid black"><?php echo ($row["lastname"]); ?></td>
                      <td style="border: 2px solid black"><?php echo ($row["umowa"]); ?></td>
                      <td style="border: 2px solid black"><?php echo ($row["street"]); ?></td>
                      <td style="border: 2px solid black"><?php echo ($row["city"]); ?></td>
                      <td style="border: 2px solid black"><?php echo ($row["kod"]); ?> </td>
                      <td style="border: 2px solid black"><?php echo ($row["email"]); ?> </td>
                      <td style="border: 2px solid black"><?php echo ($row["numer"]); ?> </td>
                        <td style="border: 2px solid black; background-color: #00a3e8;"><a href="updatesingle.php?id=<?php echo($row["id"]); ?>">EDYTUJ</a></td>
                  </tr>
                  <?php endforeach; ?>

更新单.php

<?php

  session_start();

  if (($_SESSION['zalogowany']==false))
  {
    header('Location: clientpanel.php');
    exit();
  }


  require "skrypty/connect.php";


        if (isset($_POST['submit'])) {
              try {
                $connection = new PDO($dsn, $db_user, $db_password, $options);

                $user =[
                  "id"        => $_POST['id'],
                  "firstname" => $_POST['firstname'],
                  "lastname"  => $_POST['lastname'],
                  "umowa"       => $_POST['umowa'],
                  "street"     => $_POST['street'],
                  "city"       => $_POST['city'],
                  "kod"       => $_POST['kod'],
                  "email"       => $_POST['email'],
                  "numer"       => $_POST['numer'],

                ];

                $sql = "UPDATE dane  SET id = :id, firstname = :firstname, lastname = :lastname, umowa = :umowa WHERE id = :id;
                    UPDATE adres SET id = :id, street = :street, city = :city, kod=:kod WHERE id = :id;
                    UPDATE kontakt SET id=:id, email=:email,numer=:numer WHERE id = :id";

              $statement = $connection->prepare($sql);
              $statement->execute($user);
              } catch(PDOException $error) {
                  echo $sql . "<br>" . $error->getMessage();
              }
            }



      if (isset($_GET['id'])) {
        try {
          $connection = new PDO($dsn, $db_user, $db_password, $options);
          $id = $_GET['id'];

          $sql = "SELECT * FROM dane,adres,kontakt WHERE dane.id = :id AND adres.id = :id AND kontakt.id = :id" ;
          $statement = $connection->prepare($sql);
          $statement->bindValue(':id', $id);
          $statement->execute();

          $user = $statement->fetch(PDO::FETCH_ASSOC);
        } catch(PDOException $error) {
            echo $sql . "<br>" . $error->getMessage();  
        }
      } else {
        echo "Something went wrong!";
        exit;
      }


?>

问题出现在这部分代码中:

 $user =[
                  "id"        => $_POST['id'],
                  "firstname" => $_POST['firstname'],
                  "lastname"  => $_POST['lastname'],
                  "umowa"       => $_POST['umowa'],
                  "street"     => $_POST['street'],
                  "city"       => $_POST['city'],
                  "kod"       => $_POST['kod'],
                  "email"       => $_POST['email'],
                  "numer"       => $_POST['numer'],

                ];

我不知道如何修复它以及为什么会发生此错误。

标签: phpmysql

解决方案


您使用的是旧版本的 PHP。数组初始化构造:[] 将不起作用。相反,使用这种方法:

$user = array(
       "id" => $_POST['id'],
        .....
)

推荐阅读