我正在尝试使用的系统可以从前端更新数据库中的数据,该前端已经在输入中填充了它在数据库中找到的信息,这样您就可以看到现在的情况,然后进行输入新的价值观。

问题是当我返回诸如name,email,phone之类的值时,它可以正常工作。但是,当我尝试联接表时,对于城市,我将在输入字段中没有类似159的值,它是数据库中特定城市的关键值。

刹车打印此错误。

SQL错误

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id' in where clause is ambiguous' in ....PATH TO FILE......: PDOStatement->execute(Array) #1 {main} thrown in .....PATH TO FILE....... on line 98


密码破损

在这里,您有在脚本的那部分运行的代码。

     else {
        $pdo = Database::connect();
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $sql = "SELECT
  Users.id,
  Users.firstname,
  Users.lastname,
  Users.email,
  Users.age,
  Users.phone,
  Universities.univ AS university,
  Internship.internship_type AS Internship,
  Orase.oras AS city,
  Interes.interes AS interest,
  User_status.user_status AS userstatus,
  Users.filename,
  Users.account,
  Users.reg_date
FROM
  Users
INNER JOIN
  Orase ON Users.city = Orase.cheie
INNER JOIN
  Universities ON Users.university = Universities.id
INNER JOIN
  Interes ON Users.interest = Interes.cheie
INNER JOIN
  Internship ON Users.Internship_type = Internship.cheie
INNER JOIN
  User_status ON Users.user_status = User_status.id
WHERE id = ?";
        $q = $pdo->prepare($sql);
        $q->execute(array($id));
        $data = $q->fetch(PDO::FETCH_ASSOC);
        $name = $data['firstname'];
        $lastname = $data['lastname'];
        $email = $data['email'];
        $age = $data['age'];
        $mobile = $data['phone'];
        $city = $data['city'];
        Database::disconnect();
    }


实际有效的代码

另外,这是一个没有内部联接的脚本,因此我的城市返回一个数值。

else {
    $pdo = Database::connect();
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "SELECT * FROM Users where id = ?";
    $q = $pdo->prepare($sql);
    $q->execute(array($id));
    $data = $q->fetch(PDO::FETCH_ASSOC);
    $name = $data['firstname'];
    $lastname = $data['lastname'];
    $email = $data['email'];
    $age = $data['age'];
    $mobile = $data['phone'];
    $city = $data['city'];
    Database::disconnect();
}

?>


使用工作代码的表单图像

用于上下文的图像,以便您了解为什么我要使用内部联接作为城市名称
php - 使用内部联接将数据返回输入字段以进行更新操作-LMLPHP

最佳答案

只需将WHERE id = ?替换为WHERE Users.id = ?

关于php - 使用内部联接将数据返回输入字段以进行更新操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39838397/

10-13 08:48
查看更多