Php PDO给出空数组

Php PDO给出空数组,php,html,pdo,Php,Html,Pdo,我试图使用PDO发出请求并从数据库获取响应,但它总是抛出空数组 我的代码: 我不明白为什么查询不起作用,除了什么是“选择”?删除: && 'SELECT' == $queryType[0] 从 请不要使用此功能,它在很多方面都是错误的。 如果你想跟上这种功能,至少要这样做 function dataQuery($query, $params = array()) { static $dbh; if (!$dbh) { $db

我试图使用PDO发出请求并从数据库获取响应,但它总是抛出空数组


我的代码:

我不明白为什么查询不起作用,除了什么是“选择”?删除:

&& 'SELECT' == $queryType[0]

请不要使用此功能,它在很多方面都是错误的。 如果你想跟上这种功能,至少要这样做

function dataQuery($query, $params = array())
{
    static $dbh;

    if (!$dbh)
    {
        $dbh = new PDO('mysql:host=hostname;dbname=dbname;charset=utf8', USER, PASS);
        $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }

    $stmt = $dbh->prepare($query);
    $stmt->execute($params);
    return $stmt;
}
然后像这样使用它

function pleaseWork() {
    return dataQuery("SELECT * FROM `grupy`")->fetchAll();
}

$work = pleaseWork();
echo '<pre>';
print_r($work);
函数pleaseWork(){
返回数据查询(“从`grupy`>中选择*”->fetchAll();
}
$work=愉快的工作();
回声';
印刷(工作);

请注意,当查询中没有要使用的参数时,您也不必提供这些参数。

在此处添加您的代码而不是作为linkRemoved,仍然会发生同样的情况。它现在可以工作,但无法获取utf-8字符,我如何才能获取它们?我现在如何将其转换为javascript变量并将其记录在控制台日志中?我尝试了很多方法,但都不管用。使用json_encode,或者最好再问一个问题,如何将PHP数据发送到JS,因为这个主题已经离我们太远了,所以我已经开始谈论这个线程了。为什么这段代码将变量加倍?比如:因为默认的PDO行为。您可以直接在调用中重写它,
fetchAll(PDO::FETCH_ASSOC)或全局(首选),将
PDO::ATTR_DEFAULT_FETCH_MODE=>PDO::FETCH_ASSOC
设置为连接选项
function pleaseWork() {
    return dataQuery("SELECT * FROM `grupy`")->fetchAll();
}

$work = pleaseWork();
echo '<pre>';
print_r($work);