За последние 24 часа нас посетили 22704 программиста и 1260 роботов. Сейчас ищут 739 программистов ...

PDO помогите создать правильно запрос к базе данных

Тема в разделе "PHP и базы данных", создана пользователем primitiv, 9 мар 2021.

Метки:
  1. primitiv

    primitiv Активный пользователь

    С нами с:
    22 ноя 2018
    Сообщения:
    40
    Симпатии:
    0
    Приветствую господа профессионалы, прошу прошения за свою тупость, не могу разобраться с pdo, вот есть код:

    PHP:
    1. //Эту страку хочу разбить и засунуть в массив
    2.     $variable = "userName#userSurname#userTelefon#userEmail#userPasword_1#userPasword_2";
    3.  
    4.     $pieces = explode("#", $variable);
    5.  
    6.     //Вызиваю функцию и подставляю значения с массива
    7.     in_db("INSERT INTO authorized_user SET name = $pieces[0], surname = $pieces[1], mail = $pieces[2], telefon = $pieces[3], pass = $pieces[4]");
    8.  
    9.     //Сама функция для работы с базой данных
    10.     function in_db($db_dt){
    11.  
    12.         $db_server = 'localhost';
    13.         $db_name = 'rem_teh_servis';
    14.         $db_user = 'rem_teh_site';
    15.         $db_password = 'thrtu4hr5u4u';
    16.         $dsn = "mysql:host=$db_server;dbname=$db_name;charset=utf8";
    17.  
    18.         // Параметры задают что в качестве ответа получаем ассоциативный массив
    19.         $opt = array(
    20.             PDO::ATTR_ERRMODE  => PDO::ERRMODE_EXCEPTION,
    21.             PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
    22.         );
    23.  
    24.         try {
    25.      
    26.             $pdo = new PDO($dsn, $db_user, $db_password, $opt);
    27.  
    28.             // Формируем запрос
    29.             $result = $pdo->query($db_dt);
    30.  
    31.         }
    32.         catch (PDOException $e) { die('Подключение не удалось: ' . $e->$db_dt); }
    33.     }
    Прошу помогите привести данный код в рабочее состояние, далее я пойму как надо работать и использую его как шаблон, я уже отчаялся, не знаю даже как задать правильно вопрос
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    PHP:
    1. <?php
    2.  
    3. declare ( strict_types = 1 );
    4.  
    5. error_reporting ( E_ALL );
    6.  
    7. $db_host = 'localhost';
    8. $db_name = 'rem_teh_servis';
    9. $db_user = 'rem_teh_site';
    10. $db_password = 'thrtu4hr5u4u';
    11.  
    12. $pdo = new PDO( sprintf ( 'mysql:host=%s;dbname=%s;charset=utf8', $db_host, $db_name ), $db_user, $db_password, [
    13.     PDO::ATTR_ERRMODE                => PDO::ERRMODE_EXCEPTION,
    14.     PDO::ATTR_DEFAULT_FETCH_MODE    => PDO::FETCH_ASSOC,
    15.     PDO::ATTR_EMULATE_PREPARES        => false,
    16. ] );
    17.  
    18.  
    19.  
    20. $string = 'userName#userSurname#userTelefon#userEmail#userPasword_1#userPasword_2';
    21.  
    22. $array = array_combine ( [ 'name', 'surname', 'telefon', 'mail', 'pass1', 'pass2' ], explode ( '#', $string ) );
    23.  
    24.  
    25.  
    26. $stmt = $pdo -> prepare( 'INSERT INTO authorized_user SET name = ?, surname = ?, mail = ?, telefon = ?, pass = ?' );
    27.  
    28. $stmt -> execute( [ $array['name'], $array['surname'], $array['mail'], $array['telefon'], $array['pass1'] ] );
    2021-03-09_23-27-04.png
     
    primitiv нравится это.
  3. primitiv

    primitiv Активный пользователь

    С нами с:
    22 ноя 2018
    Сообщения:
    40
    Симпатии:
    0
    Спасибо тебе, не просто составил (а) рабочий код но и дал (а) пищу для размышления, а вот ещё один вопрос, если надо не заносить данные а получить то механизм тот же?