Nano Hash - криптовалюты, майнинг, программирование

выберите строку sql, используя pdo с оператором where

Я впервые пробую PDO и все еще изучаю его. Я больше знаком с использованием mysql или mysqli при разработке системы php.

После глубокого поиска и поиска я до сих пор не могу понять, как запрашивать с помощью PDO

В моем коде я использовал mysqli внутри функции, которая будет вызываться в index.php.

function getUsery(){
    $ip = getIPAddress();
    $query = mysqli_query("select userID from tblUsers where logged='1'  AND ip='$ip'");
    $row = mysqli_fetch_array($query);  
    $emp = $row['userID'];
    $logged = $row['logged'];
    $userlvl = $row['userLevel'];
    $_SESSION['logged'] = $logged;
    $_SESSION['userLevel'] = $userlvl;
    return $emp;
}

Я действительно не знаю, как выбрать sql-запрос, используя PDO с оператором «где». Большая часть того, что я нашел, использует массив без оператора «где»

Как я могу выбрать идентификатор пользователя, где зарегистрированный равен «1», а ip равен IP-адресу компьютера, а также вернуть и отобразить результат в index.php

09.07.2018

  • Ой! SQL-инъекция кому-нибудь? 09.07.2018
  • Вы знаете, как объявить соединение с базой данных в PDO? 09.07.2018
  • @david да, только что узнал об этом с помощью веб-поиска (самообучение). Я уже объявил соединение с базой данных с помощью PDO. 09.07.2018
  • Взгляните сюда, это, вероятно, лучший учебник по использованию PDO с множеством примеров (например, where): phpdelusions.net/pdo< /а> 09.07.2018
  • @Loek, спасибо, прочитаю это. надеюсь я это пойму 09.07.2018

Ответы:


1

Предполагая, что вы знаете, как подключиться к базе данных с помощью PDO, вот как выбрать SQL с PDO.

$stmt = $db->prepare("select userID from tblUsers where logged = '1' AND ip = :ip");
$stmt->execute(array('ip' => $ip));
$listArray = $stmt->fetchAll();

Обратите внимание на :ip в конце SELECT. Если вы не используете ? в качестве параметров, префикс : является обязательным, а слово после него должно совпадать с ключом в функции выполнения.

ИЗМЕНИТЬ

В случае, если приведенный выше код находится внутри функции, а $db вне функции, объявите $db глобальной переменной внутри функции.

09.07.2018
  • Спасибо. Вы знаете, могу ли я использовать это внутри функции? 09.07.2018
  • Да, конечно. Если ваше соединение с базой данных установлено за пределами функции, вы можете использовать переменную, имеющую соединение с PDO, объявив ее глобальной в своей функции. 09.07.2018

  • 2

    Это одно из лучших руководств по PDO и тому, как его использовать: https://phpdelusions.net/pdo WHERE является частью запроса, а запросы в PDO мало чем отличаются от чистых запросов *sql, просто происходит небольшая фильтрация при выполнении. Внимательно прочитайте руководство, и вы сможете выполнить любой запрос, который вам нужен.

    09.07.2018

    3

    Есть оператор SQL с WHERE в PDO

    $sql = "SELECT * FROM Users 
    WHERE userID = ?";
    $result = $pdo->prepare($sql);
    $result->execute([$id]);
    
    09.07.2018
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..