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结果为空,但查询通过MySQL返回数据_Php_Mysql_Pdo - Fatal编程技术网

Php PDO结果为空,但查询通过MySQL返回数据

Php PDO结果为空,但查询通过MySQL返回数据,php,mysql,pdo,Php,Mysql,Pdo,我有以下代码: $sql = "SELECT Username,Level FROM users WHERE Username = :username"; print $sql; $sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY)); $sth->execute(array(':username' => $username)); $data = $sth->fetchAl

我有以下代码:

$sql = "SELECT Username,Level FROM users WHERE Username = :username";
print $sql;
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':username' => $username));
$data = $sth->fetchAll();
print_r($data);
没有打印数据,但是当我将print$sql的结果复制到MySQL并运行查询(将:username替换为该列中的值)时,我得到了一个结果

为什么这不能检索数据

编辑:$username来自一个表单,所以我:

$username = $_POST['username']; // print $username shows entered value
我的连接不是问题所在,我调用了一个函数来根据参数返回正确的连接

$debh = getConnection('read'); // creates connection with user with select privs
内部getConnection:

    case "read":
        $connection = new PDO('mysql:host=' . $host . ';dbname=' . $dbName . '', "$readUser", "$readUserPassword");
        break;
这对我很有用:

<?php
$username = 'user@email.com';
$dbh = new PDO('mysql:host=localhost;dbname=stackoverflow;charset=utf8', 'user', 'password');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$sql = "SELECT Username,Level FROM users WHERE Username = :username";
print $sql;
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':username' => $username));
$data = $sth->fetchAll();
print_r($data);

我可以查看数据库连接吗
新建PDO(…)
如何初始化$username?执行后,您可以检查
$sth->errorInfo()
以查看是否遗漏了某些内容。您也可以
打印($\u POST)
并查看是否
$\u POST['username']isset。我在任何地方都看不到那张支票(至少是你贴的)。我的解决方案超过了一个静态值,只是为了测试目的为了让它工作,我手动设置$username,但仍然没有输出。