PHP - não consigo atualizar dados em uma tabela no mysql

Boa noite, estou tentando atualizar dados de uma tabela usando pdo no mysql, mas o erro é exibido:

Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘WHERE id=‘10’’ at line 4 in C:\laragon\www\cms_ecc_app\doações\editor_controller_radio.php:42 Stack trace: #0 C:\laragon\www\cms_ecc_app\doações\editor_controller_radio.php(42): PDOStatement->execute() #1 {main} thrown in C:\laragon\www\cms_ecc_app\doações\editor_controller_radio.php on line 42

deixo abaixo o código de uma classe da qual está dando esse erro:

<?php

session_start();
include(“functions.php”);
require_once (“connections.php”);
header(‘Content-type:text/html; charset=utf-8’, true);

//controle de grades

if(isset($_GET[‘edit_id’]) && !empty($_GET[‘edit_id’]))
{
$id = $_GET[‘edit_id’];
$stmt_edit = $DB_con->prepare(‘SELECT Programacao_dia, Data_programacao FROM radio_app WHERE id =:id’);
$stmt_edit->execute(array(’:id’=>$id));
$edit_row = $stmt_edit->fetch(PDO::FETCH_ASSOC);
extract($edit_row);
}
else
{
header(“Location: radio_controller.php”);
}

//incluir dados alterados

if(isset($_POST[‘btn_save_updates’]))
{
$n_lista = $_POST[‘n_lista’];// Novo título
$n_data = $_POST[‘n_data’];// Nova data

// se der certo
if(!isset($errMSG))
{
    $stmt = $DB_con->prepare('UPDATE radio_app
								     SET Programacao_dia=:ut,
									     Data_programacao=:ud,
							       WHERE id=:id');
    $stmt->bindParam(':ut',$n_lista);
    $stmt->bindParam(':ud',$n_data);
    $stmt->bindParam(':id',$id);

    if($stmt->execute()){

?>

<?php
}
else{
$errMSG = “Informações desatualizadas”;
}

}

}

?>

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>SADA - Dashboard</title>
<?php include_once "lib.php" ; ?>
</head>
<body>

<?php
if (checaSeEstaLogado() == true){
?>

<?php include_once "header_inside.php" ; ?>

<p class="center"><b>Bem vindo


        <?php //echo $_SESSION["usuario"];

        if($_SESSION["usuario"] = "claudinei@maxdesign.com.br")
        {
            print "Claudinei";
        }
        else
        {
            print "ERRO";
        }

        ?>!</b></p>

<br>

    <p class="center">
        <a href="radio_controller.php" class="waves-effect waves-light btn-large"><i class="material-icons left">keyboard_arrow_left</i>Voltar ao controle da Rádio APP</a>
    </p>

<div id="radio_controller_div" class="row">

    <h2 class="header center">Controle de Rádio</h2>

    <br>

    <h5 class="center">Alterar grade de Programação</h5>

    <div class="container">

        <div class="row">
            <form class="col s12" method="post">

                <?php
                if(isset($errMSG)){
                    ?>
                    <div class="alert alert-danger">
                        <span class="glyphicon glyphicon-info-sign"></span> &nbsp; <?php echo $errMSG; ?>
                    </div>
                <?php
                }
                ?>

                <div class="row">
                    <div class="input-field col s12">
                        <input placeholder="Nova pregacao" value="<?php echo $Programacao_dia; ?>" maxlength="50" type="text" required="true" name="n_lista" id="n_lista">
                    </div>
                </div>
                <div class="row">
                    <div class="input-field col s12">
                        <input placeholder="10/10/0000" value="<?php echo $Data_programacao; ?>" type="date" maxlength="10" required="true" name="n_data" id="n_data">
                    </div>
                </div>

                <div class="row">
                <button class="btn-large cyan darken-2 waves-effect waves-light" name="btn_save_updates" type="submit">
                    Aplicar
                    <i class="material-icons right">save</i>
                </button>
                </div>
            </form>
        </div>

    </div>

    <p class="center">*Esse menu se refere a grade disponibilizada no app de rádio, como título e horário de programação.</p>



</div>


<?php
}else{

    ?>

    <p style = "color: red">Você não tem permissão para visualizar este conteúdo</p>

<?php
}

?>

<?php include_once "footer.php" ; ?>
</body>

Olá! Você poderia formatar melhor o código? Fica um pouquinho difícil de visualizar os erros. Porém, aparentemente é um erro com alguma query que você está tentando realizar.

Isso é sobre a minha resposta?

Infelizmente O seu código tem uma abordagem muito procedural para que eu consiga entender a semântica aplicada, fica difícil realmente entender a formatação se vc não utilizar uma padronização ou estrutura conhecida.
Tenta estudar MVC que isso vai mudar sua vida em relação aos seus projetos e qualidade de scripts que irá codificar.

Boa tarde, lamento a demora a responder a todos.

vou apenas deixar o código funcional nessa resposta, ou seja, na parte que realmente estou tendo problemas.

<?php session_start();

//arquivo de senhas do banco

    require_once ("connections.php");

    if(isset($_GET['edit_id']) && !empty($_GET['edit_id']))
{
    $id = $_GET['edit_id'];
    $stmt_edit = $DB_con->prepare('SELECT Programacao_dia, Data_programacao FROM radio_app WHERE id =:id');
    $stmt_edit->execute(array(':id'=>$id));
    $edit_row = $stmt_edit->fetch(PDO::FETCH_ASSOC);
    extract($edit_row);
}
else
{
    header("Location: radio_controller.php");
}

//incluir dados alterados

if(isset($_POST['btn_save_updates']))
{
    $n_lista = $_POST['n_lista'];// Novo título
    $n_data = $_POST['n_data'];// Nova data


    // se der certo
    if(!isset($errMSG))
    {
        $stmt = $DB_con->prepare('UPDATE radio_app
									     SET Programacao_dia=:ut,
										     Data_programacao=:ud,
								       WHERE id=:id');
        $stmt->bindParam(':ut',$n_lista);
        $stmt->bindParam(':ud',$n_data);
        $stmt->bindParam(':id',$id);

        if($stmt->execute()){
?>
            <script>
                //alert('Grade Atualizada');
                window.location.href='radio_controller.php';
            </script>
        <?php
        }
        else{
            $errMSG = "Informações desatualizadas";
        }

    }


} ?>

<!---formulário onde são exibidos os textos atuais e também onde serão inseridos os novos dados -->

<div class="container">

            <div class="row">
                <form class="col s12" method="post">

                    <?php
                    if(isset($errMSG)){
                        ?>
                        <div class="alert alert-danger">
                            <span class="glyphicon glyphicon-info-sign"></span> &nbsp; <?php echo $errMSG; ?>
                        </div>
                    <?php
                    }
                    ?>

                    <div class="row">
                        <div class="input-field col s12">
                            <input placeholder="Nova pregacao" value="<?php echo $Programacao_dia; ?>" maxlength="50" type="text" required="true" name="n_lista" id="n_lista">
                        </div>
                    </div>
                    <div class="row">
                        <div class="input-field col s12">
                            <input placeholder="10/10/0000" value="<?php echo $Data_programacao; ?>" type="date" maxlength="10" required="true" name="n_data" id="n_data">
                        </div>
                    </div>

                    <div class="row">
                    <button class="btn-large cyan darken-2 waves-effect waves-light" name="btn_save_updates" type="submit">
                        Aplicar
                        <i class="material-icons right">save</i>
                    </button>
                    </div>
                </form>
            </div>

        </div> </div>

Aguardo respostas, desde já agradeço a ajuda dos demais.

Olá, tente substituir o seu código da query por esse código:

$stmt_edit = $DB_con->prepare('
    SELECT Programacao_dia, 
           Data_programacao 
    FROM radio_app WHERE id=?
');
$stmt_edit->bind_param('i', $id);

Você também pode tentar utilizar uma referência no seu script:

$stmt_edit = $DB_con->prepare('
    SELECT Programacao_dia, 
           Data_programacao 
    FROM radio_app WHERE id = :id
');
$stmt_edit->bind_param(':id', $id);

E não se esqueça de utilizar o método execute(), em qualquer das duas versões :wink:

certo, parece não ter aceitado o bind_param, printou esse erro:

Fatal error: Uncaught Error: Call to undefined method PDOStatement::bind_param()

Ah desculpe, o método na verdade é bindParam() e não bind_param(). Você pode testar? :smile:

$stmt_edit->bindParam(’:id’,$id,PDO::PARAM_INT);

ou tenta assim …