我有一个类,在该类中是这个函数,其中有一个select语句
class homeclass {
function viewHome(){
$connection = mysql_connect("localhost","will","Idontknow!1");
if (!$connection){
die('Could not connect: ' . mysql_error());
}
$db = mysql_select_db("willr", $connection);
$query = "select id, text, image from home";
$results = mysql_query($query, $connection);
$results = mysql_fetch_array($results);
return $results;
$close = mysql_close($connection);
}
}
我将该函数调用到案例中的另一个文件中......就像这样
case"updatehome":
$homeArray = $home->viewHome();
print_r($homeArray);
break;
当我执行print_r语句时,我得到了回复......
Array ( [0] => 1 [id] => 1 [1] => Test Header [text] => Test Header [2] => test.jpg [image] => test.jpg )
我的问题是为什么我要两次获得eveything?我不明白
答案 0 :(得分:1)
这是因为您使用的是mysql_fetch_array,请使用mysql_fetch_assoc,而只返回关联数组,或将MYSQL_ASSOC
作为mysql_fetch_array
答案 1 :(得分:1)
该课程表现出对代码知之甚少的知识。 return
结束功能块,因此mysql_close($connection);
永不运行。更不用说为每个查询打开连接的开销......只需在代码开头打开一次连接,然后从那里进行的所有mysql_query
调用都会假设该连接。此外,您还可以定义从未使用过的变量($db
,$close
)。
无论如何,mysql_fetch_array
返回一个包含数字键(如mysql_fetch_rows
)和关联键(如mysql_fetch_assoc
中)的数组。理想情况下,您应该使用_rows
或_assoc
,具体取决于哪种情况更容易。在这里,您可能需要_assoc
。
答案 2 :(得分:1)
你得到的东西都是两次,因为mysql_fetch_array以0索引格式(数字索引)和关联格式返回值。如果只需要一个,则传入第二个参数或使用其他函数之一。
但,然后再进一步提示: