Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP PDO检查行是否存在两个WHERE条件_Php_Mysql_Pdo - Fatal编程技术网

PHP PDO检查行是否存在两个WHERE条件

PHP PDO检查行是否存在两个WHERE条件,php,mysql,pdo,Php,Mysql,Pdo,我正在尝试查找名为website的表中的行中存在的文本 其中,uid是INT,而domain是String 如果找到该行并且uid和domain都匹配。它应该输出success 如果行值不存在,则应输出nothing 用户以输入形式提供UID和domain 使用下面的代码,它不工作。我不确定我做错了什么 $stmt = $conn->prepare('SELECT * FROM website WHERE uid=:uid AND domain=:domain'); $stmt->

我正在尝试查找名为website的表中的行中存在的文本

其中,
uid
是INT,而
domain
是String

如果找到该行并且
uid
domain
都匹配。它应该输出
success

如果行值不存在,则应输出
nothing

用户以输入形式提供
UID
domain

使用下面的代码,它不工作。我不确定我做错了什么


$stmt = $conn->prepare('SELECT * FROM website WHERE uid=:uid AND domain=:domain');
$stmt->bindParam(1, $_GET['uid'], PDO::PARAM_INT);
$stmt->bindParam(2, $_GET['domain'], PDO::PARAM_STR);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);

if($row)
{
    echo "found";
}
else {
    echo "nothing";
}

使用
bindParam()
,第一个参数是绑定点。从手册

参数标识符用于使用命名 占位符,这将是表单的参数名称:name。暂时 使用问号占位符准备语句,这将是 1-参数的索引位置。 (我的重点)

在SQL中使用命名参数时,应使用

$stmt->bindParam('uid', $_GET['uid'], PDO::PARAM_INT);
等等


(不确定是否有重复项,如果找到,将删除)。

占位符中缺少冒号。@El_Vanja,冒号是可选的。你活着,你学习。