使用带有where语句的pdo选择sql行

时间:2018-07-09 08:17:04

标签: php sql mysqli pdo

这是我第一次尝试PDO并仍在学习。我对在开发php系统中使用mysql或mysqli更为熟悉。

经过深入的搜索和搜索后,我似乎仍然无法理解如何使用PDO进行查询

在我的代码中,我在index.php中调用的函数中使用了mysqli

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;
}

我真的不知道如何使用带有'where'语句的PDO选择sql查询。我发现的大部分内容都是使用没有'where'语句的数组

如何选择已登录的用户ID和记录的IP等于计算机的IP地址的“ 1”,并返回结果并将其显示到index.php

3 个答案:

答案 0 :(得分:0)

这是imo上有关PDO以及如何使用它的最佳指南之一: https://phpdelusions.net/pdo WHERE是查询的一部分,PDO中的查询与纯* sql查询没有太大区别,只是执行时会进行一些过滤。仔细阅读指南,您将能够执行所需的任何查询。

答案 1 :(得分:0)

PDO中有一条带有WHERE的SQL语句

$sql = "SELECT * FROM Users 
WHERE userID = ?";
$result = $pdo->prepare($sql);
$result->execute([$id]);

答案 2 :(得分:0)

假设您知道如何使用PDO连接数据库,以下是如何使用PDO选择SQL。

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

请注意:ip末尾的SELECT。如果您不使用?作为参数,则前缀:是强制性的,其后的单词应与execute函数中的键相同。

编辑

如果上面的代码在函数内部而$db在函数外部,则将$db声明为函数内部的全局变量。