我有一个数组$ ziparray,我试图在MySQL查询中使用它来检查名为'zip'的数据库列。以下代码对我来说似乎合乎逻辑,但我收到错误:
捕获致命错误:无法转换类stdClass的对象 串起来......
$ziparrayimplode = implode(",", $ziparray);
$listinghistoryquery = "SELECT * FROM listings WHERE zip IN ($ziparrayimplode) ORDER BY list_ts DESC";
$listinghistory = mysql_query($listinghistoryquery) or die('SQL Error :: '.mysql_error());
我绝对肯定$ ziparray是一个数组。谁能告诉我如何使这个查询工作?这是用于创建数组的代码..
$countyzipquery = mysql_query("SELECT city_zip FROM dev_cities WHERE city_state='$state' AND city_county='$county' AND city_name='$city'");
$ziparray = array();
while (($ziparrayrow = mysql_fetch_object($countyzipquery)) !== FALSE) {
$ziparray[] = $ziparrayrow;
这是var_dump($ ziparray)的输出
array(1) { [0]=> object(stdClass)#3 (1) { ["city_zip"]=> string(5) "63028" } }
答案 0 :(得分:2)
while (($ziparrayrow = mysql_fetch_object($countyzipquery)) !== FALSE) {
您从数据库中获取对象,然后将这些完整对象存储到$ziparray
数组中。您无法连接stdClass
个对象,因为它们无法转换为字符串(对象需要为此定义__toString
方法,而stdClass
实例没有这样的方法。)
您最有可能想要获取数组(mysql_fetch_array
而不是mysql_fetch_object
),然后只存储$ziparrayrow[0]
中的第一个元素($ziparray
)。或者,您可以保留mysql_fetch_object
,但可以在$ziparray
中更改元素的积累:
$ziparray[] = $ziparrayrow->city_zip;