我一直在尝试将我的应用程序从旧的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
,所以我假设问题就在那里。
答案 0 :(得分:1)
您正在使用PDO :: FETCH_ASSOC,它将结果集行检索到关联数组(即具有$resultArray['contacts']
等命名元素的数组。
您似乎想要一个带编号的数组。请使用PDO :: FETCH_NUM来获取它。