MySQL上的PHP PDO查询未按预期返回

MySQL上的PHP PDO查询未按预期返回,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,我一直在使用PHP开发iOS web服务,但运气不太好。我正在尝试安全地查询数据库,并在名称和密码匹配时选择用户的id。不幸的是,页面上没有显示任何内容。我认为这意味着查询在某个地方出错了。我尝试过使用静态值,但没有用。有什么想法吗 另外,我肯定这些值是正确的 是的,我知道,加密。为了简单起见,我不介意 error_reporting(E_ALL); ini_set('display errors', 1); try { $DBH = new PDO("mysql:host='loca

我一直在使用PHP开发iOS web服务,但运气不太好。我正在尝试安全地查询数据库,并在名称和密码匹配时选择用户的id。不幸的是,页面上没有显示任何内容。我认为这意味着查询在某个地方出错了。我尝试过使用静态值,但没有用。有什么想法吗

另外,我肯定这些值是正确的

是的,我知道,加密。为了简单起见,我不介意

error_reporting(E_ALL);
ini_set('display errors', 1);

try {
    $DBH = new PDO("mysql:host='localhost';dbname='login_test'", 'test', 'development');
    $DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    echo e->getMessage();
}

$data = array($_GET['name'], $_GET['password']);

$STH = $DBH->prepare('SELECT id FROM users WHERE name = ? AND password = ?');
$STH->execute($data);

$row = $STH->fetch(PDO::FETCH_ASSOC);
print '<pre>';
print_r($row);
试试看


尝试回显查询变量,并查看sql server上的try-to-run包含了什么?在PHP中,当您完全没有得到任何输出时,总会出现致命错误。开发代码时始终显示错误:错误报告全部;ini设置“显示错误”,1;在脚本的顶部。这里的问题是,您没有调用$DBH->prepare'SELECT…,而是尝试将SQL字符串作为方法传递。稍后,您将回显$STH->fetch,因为fetch调用返回一个数组,它将打印数组。相反,您需要$row=$STH->fetch;echo$row['id']@MichaelBerkowski做了你说的一切,在上面更新了它-仍然没有什么;如果是boolfalse,那么查询没有返回一行,值也不是您期望的值。没有打印任何内容。我认为您的查询没有返回一行,值也不是您期望的值,尝试手动设置名称和密码并调试..@ZapChanceI可以验证用户名='testuser'和密码='testpass'的用户的查询SELECT id是否有效@总是阳光明媚
try {
   $DBH = new PDO("mysql:host='localhost';dbname='login_test'", 'test', 'development');
   $DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
   echo /*here*/ $e->getMessage(); 
}

$data = array($_GET['name'], $_GET['password']);
$STH = $DBH->prepare('SELECT id FROM users WHERE name = ? AND password = ?');
$STH->execute($data);
$row =$STH->fetch(PDO::FETCH_ASSOC)
print '<pre>';
print_r($row);