Prepared statement,SQLSTATE [HY093]:无效的参数号[重复]

问题描述 投票:1回答:1

[我正在尝试编写查询以插入/更新表,这是我第一次使用预准备语句,但收到错误SQLSTATE[HY093]: Invalid parameter number,但从我看到的结果来看,我正在传递所需的所有列/值。

((我试图在不使用示例#2 bindParam的情况下使用here来做到这一点] >>

目前这只是一个测试,我计划在实际运行查询后使其动态化。

$data_test = [
            ':event_id' => 3354,
            ':event'    => 'TESTESTEST',
            ':staff_booking_id' => 27255,
            ':is_read' => 'yes',
            ':priority' => 'medium'
        ];

        $q = "INSERT INTO events(event_id, event, staff_booking_id, is_read, priority) 
              VALUES(:event_id, :event, :staff_booking_id, :is_read, :priority) 
              ON DUPLICATE KEY UPDATE event_id = LAST_INSERT_ID(:event_id), event = :event, staff_booking_id = :staff_booking_id, is_read = :is_read, priority = :priority;";

        $result = $this->db->prepare($q);
        $result = $result->execute($data_test);

[我正在尝试编写查询以插入/更新表,这是我第一次使用准备好的语句,但收到的错误消息是SQLSTATE [HY093]:无效的参数号,但是从我的眼中是.. 。

php mysql pdo prepared-statement on-duplicate-key
1个回答
1
投票

如FunkFortyNiner和tadman所评论,问题可能出在您重复使用同一占位符这一事实。

© www.soinside.com 2019 - 2024. All rights reserved.