注意:异常'PDOException',消息'SQLSTATE [HY093]:参数号无效:参数未定义'

Okay, I'm really confused. I can't seem to see where I went wrong with this invalid parameter number thing. Could I get a hand with identifying where I'm going wrong?

Get SQL Query and Set up Parameters

public function do_retrieve_stored_message_data()
    {
        $m_sql_query_string = CourseWorkSqlQuery::get_message_data();
        $m_message_data = $this->c_arr_display_stored_message_data['sanitised-message-data'];
        $m_arr_sql_query_parameters = 
        array(':message_date' => $m_message_data,
                ':message_time' => $m_message_data,
                ':message_last_value' => $m_message_data);

        $m_result = $this->c_obj_database_handle->safe_query($m_sql_query_string, $m_arr_sql_query_parameters);

SQL Query String

public static function get_message_data()
    {
        $m_sql_query_string  =  "SELECT message_date, message_time, message_last_value ";
        $m_sql_query_string .=  "FROM cw_messages ";
        $m_sql_query_string .=  "WHERE message_date = :message_date ";
        $m_sql_query_string .=  "AND message_time = :message_time ";
        $m_sql_query_string .=  "AND message_last_value= :message_last_value ";
        $m_sql_query_string .=  "LIMIT 1";
        return $m_sql_query_string;
    }

Database Handler

public function safe_query($p_query_string, $p_arr_params)
    {
        $m_database_query_execute_error = true;
        $m_query_string = $p_query_string;
        $m_arr_query_parameters = $p_arr_params;

        try
        {
            $m_temp = array();
            $this->c_obj_database_handle->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

            $this->c_obj_stmt = $this->c_obj_database_handle->prepare($m_query_string);

            // bind the parameters
            if (sizeof($m_arr_query_parameters) > 0)
            {
                foreach ($m_arr_query_parameters as $m_param_key => $m_param_value)
                {
                    $m_temp[$m_param_key] = $m_param_value;
                    $this->c_obj_stmt->bindParam($m_param_key, $m_temp[$m_param_key], PDO::PARAM_STR);
                }
            }

            // execute the query
            $m_execute_result = $this->c_obj_stmt->execute();

Any help would be greatly appreciated.

RESOLVED:

Long story, short, I tried to assign all 3 parameters to 1 variable. So to change this, I swapped:

OLD CODE

..
..
$m_arr_sql_query_parameters = 
    array(':message_date' => $m_message_data,
            ':message_time' => $m_message_data,
            ':message_last_value' => $m_message_data);
..
..

NEW CODE

..
..
$m_arr_sql_query_parameters = 
    array(':message_date' => $m_message_date,
            ':message_time' => $m_message_time,
            ':message_last_value' => $m_message_last_value);
..
..

And this fixed my problem. Good to know you can't assign more than one paranter to a variable. Feel free to close this Query.