【问题标题】:Laravel - PDO - UPDATINGLaravel - PDO - 更新
【发布时间】:2016-04-18 20:41:33
【问题描述】:

好的,当我在本地主机中运行时,PDO 代码运行良好,但是当我 在我的主机中运行不起作用并给我一个错误,即

Connection.php 第 651 行中的 QueryException: SQLSTATE[HY000]: 一般错误: 2053 (SQL: UPDATE roles SET member_id=76446,member_role=5613 WHERE member_id=76446)

代码是

if (!empty($member->id)) {



        $new_id = $member->id;

        $new_p = $member->p_id;

        $sql = "UPDATE roles SET member_id=$new_id,member_role=$new_p WHERE member_id=$new_id";

        $member = DB::select($sql);

        Session::flash('sm', 'Thank you! You have edited the Profile successfully!');

    }

感谢您的帮助!

【问题讨论】:

  • connection.php 是一个 laravel 系统。
  • 一切都正确,如果不正确,则站点未连接到数据库并且无法正常工作。
  • Laravel 真的对UPDATE/INSERT 查询使用select() 方法吗?好像this the preferred, documented method
  • 是的,但是你有标记为 Laravel 的问题,它有自己的使用 PDO 的所有内部约定。 DB::select() 本身不是 PDO。这是一个 Laravel 函数。

标签: php mysql sql laravel pdo


【解决方案1】:

Laravel 内置于 query builder 所以你的代码应该看起来像 -

if (!empty($member->id)) {

        $new_id = $member->id;

        $new_p = $member->p_id;

        DB::table('roles')->where('member_id', $new_id)->update(['member_role' => $new_p]);

        Session::flash('sm', 'Thank you! You have edited the Profile successfully!');

    }

我删除了member_id=$new_id,因为您已经在where 子句中检查了这部分

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-12
    • 2013-02-25
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 2014-03-20
    相关资源
    最近更新 更多