好吧所以我对MySQL的一切都有天生的恐惧
这是我的表:
+----+-----------------+------+
| id | name | age |
+----+-----------------+------+
| 1 | Timmy Mellowman | 23 |
| 2 | Jeff Johnson | 18 |
+----+-----------------+------+
Run Code Online (Sandbox Code Playgroud)
这是我的PHP code(连接到DB之外)
$raw = mysql_query("SELECT * FROM example") or die(mysql_error());
$row = mysql_fetch_array($raw);
echo "\n\n";
print_r($row);
Run Code Online (Sandbox Code Playgroud)
所以这是我的输出:
Array
(
[0] => 1
[id] => 1
[1] => Timmy Mellowman
[name] => Timmy Mellowman
[2] => 23
[age] => 23
)
Run Code Online (Sandbox Code Playgroud)
为什么这是输出?这个名字加倍?为什么为[1]和[name]设置名称?
另一方面,他们是将PHP与MySQL结合使用的更好方法
根据mysql_fetch_array 的PHP文档:
返回与获取的行对应的字符串数组,如果没有更多行,则返回FALSE.返回数组的类型取决于result_type的定义方式.通过使用MYSQL_BOTH(默认),您将获得一个包含关联索引和数字索引的数组.使用MYSQL_ASSOC,您只能获得关联索引(因为mysql_fetch_assoc()有效),使用MYSQL_NUM,您只能获得数字索引(因为mysql_fetch_row()可以工作).
所以在你的行$row = mysql_fetch_array($raw);$ row接收一个同时具有关联和数字索引的数组,因为这是默认值.如果只想要关联索引,使用$row = mysql_fetch_array($raw,MYSQL_ASSOC);(或mysql_fetch_assoc())或者只想要数字索引,请使用$row = mysql_fetch_array($raw,MYSQL_NUM);(或mysql_fetch_row()).
要检索所有行,请使用以下内容:
while ($row = mysql_fetch_array($raw)) {
echo "<p>" . $row['id'] . " - " . $row['name'] . " - " . $row['age'] . "</p>\n";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4309 次 |
| 最近记录: |