За последние 24 часа нас посетили 22235 программистов и 994 робота. Сейчас ищут 714 программистов ...

Как правильно заменить на PDO?

Тема в разделе "Вопросы от блондинок", создана пользователем Mitai, 29 янв 2018.

  1. Mitai

    Mitai Новичок

    С нами с:
    23 окт 2016
    Сообщения:
    155
    Симпатии:
    24
    PHP:
    1. header("Content-Type:text/html;charset=UTF-8");
    2.  
    3.  
    4. require_once "config.php";
    5. require_once "functions.php";
    6.  
    7. db(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);
    8.  
    9. //$categories =
    10. //$razd =
    11. //$user =
    12.  
    13. $action = clear_str($_GET['action']);
    14. if(!$action) {
    15.     $action = "main";
    16. }
    17.  
    18. if(file_exists(ACTIONS.$action.".php")) {
    19.     include ACTIONS.$action.".php";
    20. }
    21. else {
    22.     include ACTIONS."main.php";
    23. }
    24.  
    25. require_once TEMPLATE."/index.php";
    26.  
    27. function db($host,$user,$pass,$db_name) {
    28.         $db = mysql_connect($host,$user,$pass);
    29.         if(!$db) {
    30.             exit(mysql_error());
    31.         }
    32.      
    33.         if(!mysql_select_db($db_name,$db)) {
    34.             exit(mysql_error());
    35.         }
    36.      
    37.         mysql_query("SET NAMES UTF8");
    38.     }
    39.  
    40.     function clear_str($str) {
    41.         return trim(strip_tags($str));
    42.     }
    43.  
    44.     function render($path,$param = array()) {
    45.         extract($param);
    46.      
    47.         ob_start();
    48.      
    49.         if(!include($path.".php")) {
    50.             exit("Нет такого шаблона");
    51.         }
    52.      
    53.         return ob_get_clean();
    54.      
    55.     }
    pgsql:host=localhost;port=5432;dbname=testdb;user=bruce;password=mypass ( это строка с оф документации, а как сделать часть с exit(mysql_error()?
     
    #1 Mitai, 29 янв 2018
    Последнее редактирование модератором: 30 янв 2018
  2. Mitai

    Mitai Новичок

    С нами с:
    23 окт 2016
    Сообщения:
    155
    Симпатии:
    24
    PHP:
    1. $dbh = new PDO('pgsql:dbname=test', $user=test, $pass=1234);
    2. try {
    3. $dbh = new PDO('pgsql:host=localhost;dbname=test', $user, $pass);эта строка нужна второй раз?
    4. foreach($dbh->query('SELECT * from FOO') as $row) {
    5. print_r($row);
    6. }
    7. $dbh = null;
    8. } catch (PDOException $e) {
    9. print "Error!: " . $e->getMessage() . "<br/>";
    10. die();
    11. }
     
    #2 Mitai, 29 янв 2018
    Последнее редактирование: 29 янв 2018
  3. Mitai

    Mitai Новичок

    С нами с:
    23 окт 2016
    Сообщения:
    155
    Симпатии:
    24
    Законектился)) я и забыл что у меня есть книга котерова php7. Такой вопрос я смотрю курс и он очевидно очень, очень, старый, в нем используется "mysql"- подключение, но блин почему там все действия пользователя на гет запросах? я не могу себе представить что бы человек зашел на сайт и что бы добавить сообщение начал печатать в адресной строке ADD_MES ну это же псдц какой то тупняк, раньше не было POST запросов? или автор данного курса родствениик Попова?
     
  4. rewuxiin

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

    С нами с:
    17 апр 2012
    Сообщения:
    611
    Симпатии:
    87
    какая-то каша у тебя в голове.
    тебе примеры приводят, что бы ты учился на них, а не в Phpmyadmin кнопкочки тыкал. которые, кстати, выполняют именно get запросы, только с помощью ajax
     
  5. Mitai

    Mitai Новичок

    С нами с:
    23 окт 2016
    Сообщения:
    155
    Симпатии:
    24
    https://webformyself.com/premium-sozdanie-doski-obyavlenij-urok-1/ сам автор курса, тыкает кнопочки в Phpmyadmin ( у меня phppgadmin я в нем тыкать кнопочки буду ), вопрос по GET запросам, был про эту часть, для юзера удобнее нажать кнопочку "опубликовать объявление", чем печатать что то в адресной строке, сугубо мое имхо
    PHP:
    1. $action = clear_str($_GET['action']);
    2. if(!$action) {
    3. $action = "main";
    4. }
     
  6. rewuxiin

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

    С нами с:
    17 апр 2012
    Сообщения:
    611
    Симпатии:
    87
    я не могу понять, ты сейчас серьезно говоришь о том, что не знаешь что такое формы и что такое get и post отправка форм?
     
  7. Mitai

    Mitai Новичок

    С нами с:
    23 окт 2016
    Сообщения:
    155
    Симпатии:
    24
    в той ссылке что давал постом выше перемотайте на 1-06-00, конкретно эту часть не понимаю, что бы просмотреть объявлению пользователь печатает view, что бы добавить печатает в адресной строке... бабуйня не? по мне дак он старший брат Попова
    --- Добавлено ---
    файлы все в кодировке utf-8 а база в cp 1251, это нормально?
     
  8. rewuxiin

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

    С нами с:
    17 апр 2012
    Сообщения:
    611
    Симпатии:
    87
    блин, так я в разделе для блондинок.
    это он для тебя показывает, что необходимо, что бы вызвать определенный экшн.
    с тем же успехом можно доебаться к ссылке при гугл поиске - но ты же ее не набираешь, верно?

    то что он так обучает - нет, то что это можно использовать - почему бы и да
     
  9. Mitai

    Mitai Новичок

    С нами с:
    23 окт 2016
    Сообщения:
    155
    Симпатии:
    24
    ясненько, спасибо
     
  10. Mitai

    Mitai Новичок

    С нами с:
    23 окт 2016
    Сообщения:
    155
    Симпатии:
    24
    Notice: Undefined index: action in /var/www/uporovo.site/index.php on line 17 как ее пофиксить (без применения @). или можно пока просто игнорировать?
    PHP:
    1. <?php
    2.  
    3. error_reporting ( E_ALL );
    4.  
    5. header("Content-Type:text/html;charset=UTF-8");
    6.  
    7.  
    8. require_once ('connect_db.php');
    9. require_once "config.php";
    10. require_once "functions.php";
    11.  
    12. //$categories =
    13. //$razd =
    14. //$user =
    15.  
    16. $action = clear_str($_GET['action']); // 17ая строка
    17. if(!$action) {
    18.     $action = "main";
    19. }
    20.  
    21. if(file_exists(ACTIONS.$action.".php")) {
    22.     include ACTIONS.$action.".php";
    23. }
    24. else {
    25.     include ACTIONS."main.php";
    26. }
    27.  
    28. require_once TEMPLATE."/index.php";
    29. ?>
     
  11. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    @Mitai перед тем как прочитать значение индекса в массиве, можно проверить его наличие через isset или empty(тут если есть но пустой будет true и другие варианты, зато можно проверять без ошибок много мерные массивы, а isset вроде каждый ключ по нарастающей)
     
    Mitai нравится это.
  12. Mitai

    Mitai Новичок

    С нами с:
    23 окт 2016
    Сообщения:
    155
    Симпатии:
    24
    PHP:
    1. $action = clear_str(isset($_GET['action']));
    2.     if (!$action) {
    3.         $action = "main";
    4.     }
    cделал так, но в другом варианте линтер ругается и не дает использовать isset
    PHP:
    1. <?php if (isset(!$user)) :?>
    херова повторять за кем то не понимая что он ваще делает, и у него видимо ошибки отключены...
     
  13. Mitai

    Mitai Новичок

    С нами с:
    23 окт 2016
    Сообщения:
    155
    Симпатии:
    24
    PHP:
    1. <?php
    2.             $user = '';
    3.             if (!$user) :?>
    убрал нотис таким способом, это говнокод? и как его переписать в одну строку
     
  14. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
  15. Mitai

    Mitai Новичок

    С нами с:
    23 окт 2016
    Сообщения:
    155
    Симпатии:
    24
    PHP:
    1. <div id="auth">
    2.                 <?php if (isset(!$user)):?>
    3.                     <a href="?action=login">Вход</a>
    4.                     |
    5.                     <a href="?action=registration">Регистрация</a>
    6.                 <?php else : ?>
    7.                     Добро пожаловать [<?=$user['name'];?>]
    8.                 |
    9.                     <a href="?action=login&logout=1">Выход</a>
    10.                 <?php endif; ?>
    11.             </div>
    блок целиком, пишет что нельзя использовать isset, can use null
     
  16. Mitai

    Mitai Новичок

    С нами с:
    23 окт 2016
    Сообщения:
    155
    Симпатии:
    24
    7.0
     
  17. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    так ты пиши весь текст ошибки
    --- Добавлено ---
    ладно, !isset($user), вроде isset не функция, а часть языка, вот и ругается если ты там ставишь !, с обычной функцией такое бы прошло, просто была бы логическая ошибка, а тут другой случай
     
  18. Mitai

    Mitai Новичок

    С нами с:
    23 окт 2016
    Сообщения:
    155
    Симпатии:
    24