PHP fetchAll(PDO::FETCH_ASSOC) returns 语句中为空
PHP fetchAll(PDO::FETCH_ASSOC) returns null in statement
我正在尝试使用 PDO::FETCH_ASSOC
.
获取插入到我的数据库中的数据
出于某种原因(可能是缺乏理解...)我无法回显来自 class 方法的数据。
这是 db table 结构:
我想将数据作为$fieldName['value'] => $fieldVal['value']
的关联数组来执行
我有一个 class,通过匹配 tz
和 year
值,select 来自 table 的所有数据。
从函数内的 print _r 我收到了一个好的数据。
如果我从 class 文件外部调用该方法,我会将所有值接收为 null。
这是我的 class 代码:
function dataExist($tz, $year){
$tz = 303748891;
$year = 2017;
$query = "SELECT * FROM ". $this->table_name ." WHERE tz = ? AND year = ?";
$stmt = $this->conn->prepare($query);
$stmt->bindParam(1, $tz);
$stmt->bindParam(2, $year);
// execute query
$stmt->execute();
//get all data
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo '<pre>';
print_r( $result);
echo '</pre>';
return $result;
}
这是我在 class print_r
.
方面收到的好结果
Array
(
[0] => Array
(
[id] => 45
[tz] => 303748891
[fieldName] => tel
[fieldVal] => 0547
[year] => 2017
)
[1] => Array
(
[id] => 77
[tz] => 303748891
[fieldName] => fname
[fieldVal] => Jon
[year] => 2017
)
[2] => Array
(
[id] => 78
[tz] => 303748891
[fieldName] => lname
[fieldVal] => black
[year] => 2017
)
[3] => Array
(
[id] => 79
[tz] => 303748891
[fieldName] => tel
[fieldVal] => 5555-555-55
[year] => 2017
)
[4] => Array
(
[id] => 80
[tz] => 303748891
[fieldName] => mail
[fieldVal] => aaa@aaa.aaa
[year] => 2017
)
[5] => Array
(
[id] => 81
[tz] => 303748891
[fieldName] => fname
[fieldVal] => James
[year] => 2017
)
[6] => Array
(
[id] => 82
[tz] => 303748891
[fieldName] => lname
[fieldVal] => White
[year] => 2017
)
[7] => Array
(
[id] => 83
[tz] => 303748891
[fieldName] => tel
[fieldVal] => 6669-666-666
[year] => 2017
)
[8] => Array
(
[id] => 84
[tz] => 303748891
[fieldName] => mail
[fieldVal] => bbb@bbb.bbb
[year] => 2017
)
)
这是来自其他文件的调用:
$dataExist = new Form($db);
$dataExist->dataExist($tz,$year);
echo '<pre>';
print_r( $dataExist);
echo '</pre>';
我收到这个:
Form Object
(
[conn:Form:private] => PDO Object
(
)
[table_name:Form:private] => submisions
[id] =>
[tz] =>
[fieldName] =>
[fieldVal] =>
[year] =>
)
您没有将方法调用的结果分配给变量。变化
$dataExist->dataExist($tz,$year);
到
$thedata = $dataExist->dataExist($tz,$year);
然后
print_r($thedata);
你会看到你所期望的。
我正在尝试使用 PDO::FETCH_ASSOC
.
出于某种原因(可能是缺乏理解...)我无法回显来自 class 方法的数据。
这是 db table 结构:
我想将数据作为$fieldName['value'] => $fieldVal['value']
我有一个 class,通过匹配 tz
和 year
值,select 来自 table 的所有数据。
从函数内的 print _r 我收到了一个好的数据。
如果我从 class 文件外部调用该方法,我会将所有值接收为 null。
这是我的 class 代码:
function dataExist($tz, $year){
$tz = 303748891;
$year = 2017;
$query = "SELECT * FROM ". $this->table_name ." WHERE tz = ? AND year = ?";
$stmt = $this->conn->prepare($query);
$stmt->bindParam(1, $tz);
$stmt->bindParam(2, $year);
// execute query
$stmt->execute();
//get all data
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo '<pre>';
print_r( $result);
echo '</pre>';
return $result;
}
这是我在 class print_r
.
Array
(
[0] => Array
(
[id] => 45
[tz] => 303748891
[fieldName] => tel
[fieldVal] => 0547
[year] => 2017
)
[1] => Array
(
[id] => 77
[tz] => 303748891
[fieldName] => fname
[fieldVal] => Jon
[year] => 2017
)
[2] => Array
(
[id] => 78
[tz] => 303748891
[fieldName] => lname
[fieldVal] => black
[year] => 2017
)
[3] => Array
(
[id] => 79
[tz] => 303748891
[fieldName] => tel
[fieldVal] => 5555-555-55
[year] => 2017
)
[4] => Array
(
[id] => 80
[tz] => 303748891
[fieldName] => mail
[fieldVal] => aaa@aaa.aaa
[year] => 2017
)
[5] => Array
(
[id] => 81
[tz] => 303748891
[fieldName] => fname
[fieldVal] => James
[year] => 2017
)
[6] => Array
(
[id] => 82
[tz] => 303748891
[fieldName] => lname
[fieldVal] => White
[year] => 2017
)
[7] => Array
(
[id] => 83
[tz] => 303748891
[fieldName] => tel
[fieldVal] => 6669-666-666
[year] => 2017
)
[8] => Array
(
[id] => 84
[tz] => 303748891
[fieldName] => mail
[fieldVal] => bbb@bbb.bbb
[year] => 2017
)
)
这是来自其他文件的调用:
$dataExist = new Form($db);
$dataExist->dataExist($tz,$year);
echo '<pre>';
print_r( $dataExist);
echo '</pre>';
我收到这个:
Form Object
(
[conn:Form:private] => PDO Object
(
)
[table_name:Form:private] => submisions
[id] =>
[tz] =>
[fieldName] =>
[fieldVal] =>
[year] =>
)
您没有将方法调用的结果分配给变量。变化
$dataExist->dataExist($tz,$year);
到
$thedata = $dataExist->dataExist($tz,$year);
然后
print_r($thedata);
你会看到你所期望的。