使用PDO获取MySQL数组时出错

时间:2014-06-17 02:30:56

标签: php mysql pdo

我一直在尝试将我的应用程序从旧的mysql语法转换为PDO,这真的很痛苦。现在我遇到了麻烦,因为看起来使用PDO的同一查询是空的,因为使用mysql_fetch_array

返回完整数组的查询

以下是我的一个功能的代码:

//Get all contacts from DB
public function getContacts($regId) {
    try {
        $sql = "SELECT contacts FROM gcm_users WHERE gcm_regid = '$regId'";
        $resource = $this->db->query($sql);
        //$resource = mysql_query("SELECT contacts FROM gcm_users WHERE gcm_regid = '$regId'");      
        $resultArray = $resource->fetch(PDO::FETCH_ASSOC);
        $result = $resultArray[0];
        }

    catch (SQLException $e) {
        $output = 'Error fetching contacts: ' . $e->getMessage();
    }
    return $result;
}

工作正常的原始mysql_query被注释掉了。我目前收到的错误是:

Notice: Undefined offset: 0 in C:\xampp\htdocs\gcm\db_functions.php on line 197

导致我的

$result = $resultArray[0];

我查了一下错误,似乎是因为$resultArray是空的。我不习惯使用PDO::FETCH_ASSOC代替mysql_fetch_array,所以我假设问题就在那里。

1 个答案:

答案 0 :(得分:1)

您正在使用PDO :: FETCH_ASSOC,它将结果集行检索到关联数组(即具有$resultArray['contacts']等命名元素的数组。

您似乎想要一个带编号的数组。请使用PDO :: FETCH_NUM来获取它。