如果fieldname为0,PHP Mysql_fetch_数组将失败
使用mysql_fetch_array()进行简单查询-如果fieldname为0,PHP Mysql_fetch_数组将失败,php,mysql,Php,Mysql,使用mysql_fetch_array()进行简单查询- SELECT id, name, roll FROM student 我得到-> Array ( [0] => 1 [id] => 1 [1] => sam [name] => sam [2] => 5 [roll] => 5 ) 但是,如果我用0-> SELECT id, name, 0 FROM student 它发送-> Array (
SELECT id, name, roll FROM student
我得到->
Array (
[0] => 1
[id] => 1
[1] => sam
[name] => sam
[2] => 5
[roll] => 5
)
但是,如果我用0->
SELECT id, name, 0 FROM student
它发送->
Array (
[0] => 0
[id] => 1
[1] => sam
[name] => sam
[2] => 0
)
“id”给出了“0”。而查询在mysql中运行良好
这是mysql\u fetch\u数组的错误吗?这不是错误。正在覆盖键为
0
的数组值
由于您尚未为具有常量值的列指定任何别名,因此其列名将为0
。当此列名成为数组中的键时,它将用键0
覆盖数组中已经存在的值
[0] => 1 // for id
[id] => 1
[1] => sam // for name
[name] => sam
[0] => 0 // for 0 .. THIS WILL OVERWRITE.
解决此问题的最简单方法是提供列别名,如下所示:
SELECT id, name, 0 AS FOO FROM student
这不是一个错误。正在覆盖键为
0
的数组值
由于您尚未为具有常量值的列指定任何别名,因此其列名将为0
。当此列名成为数组中的键时,它将用键0
覆盖数组中已经存在的值
[0] => 1 // for id
[id] => 1
[1] => sam // for name
[name] => sam
[0] => 0 // for 0 .. THIS WILL OVERWRITE.
解决此问题的最简单方法是提供列别名,如下所示:
SELECT id, name, 0 AS FOO FROM student
您应该改用
mysql\u fetch\u assoc
。您应该改用mysql\u fetch\u assoc
。另一个解决方案是将查询更改为:
SELECT id, name, 0 AS zero FROM student
另一种解决方案是将查询更改为:
SELECT id, name, 0 AS zero FROM student
接受两个参数。你用第二个信号表示你想得到什么结果
MYSQL\u ASSOC
将为您提供一个带有字段名的关联数组(如果您决定将其用作字段名,甚至可以使用0
)。您将获得:
Array ( [id] => 1 [name] => sam [roll] => 5 )
Array ( [0] => 1 [1] => sam [2] => 5 )
MYSQL_NUM
将按照您要求的顺序,给出用数字索引的结果行。您将获得:
Array ( [id] => 1 [name] => sam [roll] => 5 )
Array ( [0] => 1 [1] => sam [2] => 5 )
MYSQL\u这两个都是默认值,它将以两种方式填充数组,并且会使类似的事情复杂化。接受两个参数。你用第二个信号表示你想得到什么结果
MYSQL\u ASSOC
将为您提供一个带有字段名的关联数组(如果您决定将其用作字段名,甚至可以使用0
)。您将获得:
Array ( [id] => 1 [name] => sam [roll] => 5 )
Array ( [0] => 1 [1] => sam [2] => 5 )
MYSQL_NUM
将按照您要求的顺序,给出用数字索引的结果行。您将获得:
Array ( [id] => 1 [name] => sam [roll] => 5 )
Array ( [0] => 1 [1] => sam [2] => 5 )
MYSQL\u-BOTH
是默认值,它将以两种方式填充数组,并且会使类似的事情变得复杂。因此,如果我将任何数字作为字段,它将无法正常工作。为什么不使用MYSQL\u-fetch\u行或使用MYSQL\u-NUM选项作为第二个参数呢,如果我把任何数字作为字段-它应该不能正常工作。为什么不使用mysql\u fetch\u行或mysql\u NUM选项作为第二个参数?