PHP PDOStatement :: execute (): SQLSTATE [HY093] - PullRequest
       71

PHP PDOStatement :: execute (): SQLSTATE [HY093]

0 голосов
/ 06 октября 2019

Предупреждение: PDOStatement :: execute (): SQLSTATE [HY093]: недопустимый номер параметра: параметр не был определен в C: \ xamppp \ htdocs \ porto \ yonetim \ network \ islem.php в строке 14

Я ПОЛУЧАЮ ОШИБКУ

Источник проекта: https://www.youtube.com/watch?v=Kwy40bF_0Fg&list=PLZtkgIR0fgTHt1ZaDskLfv3WwVTdCYDIU&index=12

<?php 
    ob_start();
    include 'baglan.php';
    if (isset($_POST['genelayarkaydet'])) {
        $ayarkaydet=$db->prepare("UPDATE ayar SET
ayar_siteurl=:ayar_siteurl,
ayar_title=:title
WHERE ayar_id=0");

        $update = $ayarkaydet -> execute(array(
'siteurl' => $_POST['ayar_siteurl'],
'title' => $_POST['ayar_title']
));

        if ($update) {
            echo "Başarılı..";
        }
    }
?>

Ответы [ 2 ]

0 голосов
/ 06 октября 2019

В вашем коде так много опечаток. Ваш оператор execute неправильный.

Снова мне было интересно, что делает ayar_id = 0. Я считаю, что это должно быть уникальным значением для приращений базы данных. Если да, то создание таблицы неверно.

Например, вы также можете сделать ayar_id целым и первичным ключом

Например. create table ayar(ayar_id int primary key auto_increment, ayar_title varchar(3));

Первичный ключ установит значение ayar_id равным 1 для отсчета первой вставки. В любом случае, так как ваш ayar_id равен 0. Я переписал код для вас

<?php 
ob_start();
include 'baglan.php';

/*  my own db connections
$db = new PDO (
    'mysql:host=localhost;dbname=your_db_name;charset=utf8', 
    'root', // username

    '' // password
);
*/

if (isset($_POST['genelayarkaydet'])) {


 $ayarkaydet=$db->prepare("UPDATE ayar SET ayar_siteurl=:ayar_siteurl,ayar_title=:ayar_title WHERE ayar_id=:ayar_id");

        $ayarkaydet->execute(array(
            'ayar_siteurl' => $_POST['ayar_siteurl'],
'ayar_title' => $_POST['ayar_title'],
'ayar_id' => '0'
    ));


if ($ayarkaydet) {
    echo "Başarılı..";
}


}


 ?>
0 голосов
/ 06 октября 2019

Попробуйте это:

$update = $ayarkaydet->execute([
':aray_siteurl' => $_POST['ayar_siteurl'],
':title' => $_POST['ayar_title']]);
...