【发布时间】:2018-03-29 08:40:03
【问题描述】:
我正在尝试在 Flash Builder 中使用 php 函数...但是,该函数的返回值出乎意料.. 一个空白的 [](对象)而不是一个数组。
功能是:
public function getAllAuctions($search) {
$stmt = mysqli_prepare($this->connection, "SELECT * FROM $this->tablename WHERE name LIKE ?");
$this->throwExceptionOnError();
mysqli_stmt_bind_param($stmt, 'i', $search);
$this->throwExceptionOnError();
mysqli_stmt_execute($stmt);
$this->throwExceptionOnError();
$rows = array();
mysqli_stmt_bind_result($stmt, $row->id, $row->name);
while (mysqli_stmt_fetch($stmt)) {
$rows[] = $row;
$row = new stdClass();
mysqli_stmt_bind_result($stmt, $row->id, $row->name);
}
mysqli_stmt_free_result($stmt);
mysqli_close($this->connection);
return $rows;
}
总结一下......我期待收到一个数组,一个mysql搜索查询的结果;改为接收空白对象:[]
有什么想法吗?
【问题讨论】:
-
很好奇您是如何检测到
$this->throwExceptionOnError();的错误的 不知道$rows[] = $row;的意义是什么,因为$row没有在逻辑上事先设置,您总是会错过最后一个结果。第三,我认为,当使用mysqli_stmt_bind_result时,您必须更改查询以选择列名,您不应该调用*。 (在这一点上我可能是错的,所以请纠正我)。第四,这段代码似乎有太多问题。我觉得阅读reading the man page 可能是缩小问题范围的更好方法。 -
我不得不承认我是一个完全的 php 初学者。该功能在连接到数据服务时作为模板提供;只是替换了
$search变量的名称和对mysql 的轻微修改(LIKE)。它应该与select *一起工作...我怀疑错误是通过在此过程中安装的 Zend 框架传递的... -
我正在考虑购买 Flash Builder,但现在不太确定.. 尝试使用 eclipse... 太糟糕了... 我必须重新开始... 学习 Java... . 这个错误似乎很可疑......位转换为 5b 5d ...
-
我认为问题出在
mysqli_stmt_bind_param($stmt, 'i', $search);...它应该是字符串中的“s”,而不是整数中的“i”...还没有尝试过... -
是的......这就是问题......我花了大约一个月的时间才弄清楚......“s”而不是“i”......我知道我有它在不知何故之前工作......最后......
标签: php mysql flash-builder