我在数组中找不到这个额外的行
I can't find out this extra line in array
我不知道我的数组是什么意思。
我的代码是
try {
$conn=new PDO("mysql:host=localhost;dbname=moviesite","root","");
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$stmt=$conn->prepare("SELECT movie_name,movie_year,movie_type,movie_leadactor,movie_director
FROM movie
ORDER BY movie_name,movie_year");
$stmt->execute();
$result=$stmt->fetchAll();
foreach ($result as $row) {
var_dump($row);
}
} catch (PDOException $e) {
echo $e->getmessage();
}
**And my result**
我的问题是
0 => string 'Bruce Almighty' (length=14)
1 => string '2003' (length=4)
.
.
.
我只请求 movie_name
、movie_year
、movie_type
、movie_leadactor
、movie_director
但它显示额外的行,例如 0 => string 'Bruce Almighty' (length=14)
转储为您提供有关数组中每个变量的信息。因此,字符的类型和数量。如果你只是想输出它们。
foreach ($result as $row) {
echo $row['movie_name'].','. $row['movie_year'].','.$row['movie_type'].','.$row['movie_leadactor'].','.$row['movie_director'].'<br />';
}
更改显示子项的限制
; with sane limits
xdebug.var_display_max_depth = 16
xdebug.var_display_max_children = 400
xdebug.var_display_max_data = 2048
; with no limits
; (maximum nesting is 1023)
xdebug.var_display_max_depth = -1
xdebug.var_display_max_children = -1
xdebug.var_display_max_data = -1
也可以在编码方面完成以下操作
ini_set('xdebug.var_display_max_depth', 16);
ini_set('xdebug.var_display_max_children', 400);
ini_set('xdebug.var_display_max_data', 2048);
fetchAll()
的第一个参数是fetch_style
其中
Controls the contents of the returned array as documented in
PDOStatement::fetch(). Defaults to value of
PDO::ATTR_DEFAULT_FETCH_MODE (which defaults to PDO::FETCH_BOTH)
这就是为什么当您 var_dump($row);
时,您的 array.You 中同时获得了 numeric
和 associative
格式数据,只需要在 $stmt->setFetchMode(PDO::FETCH_ASSOC);
之前设置 $stmt->execute();
或使用 $result = $stmt->fetchAll(PDO::FETCH_ASSOC)
作为关联索引。
try {
$conn = new PDO("mysql:host=localhost;dbname=moviesite","root","");
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT movie_name,movie_year,movie_type,movie_leadactor,movie_director
FROM movie
ORDER BY movie_name,movie_year");
//ADD BELOW LINE
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();
//OR REPLACE BELOW LINE LIKE $result=$stmt->fetchAll(PDO::FETCH_ASSOC);
$result = $stmt->fetchAll();
foreach ($result as $row) {
var_dump($row);
}
} catch (PDOException $e) {
echo $e->getmessage();
}
我不知道我的数组是什么意思。
我的代码是
try {
$conn=new PDO("mysql:host=localhost;dbname=moviesite","root","");
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$stmt=$conn->prepare("SELECT movie_name,movie_year,movie_type,movie_leadactor,movie_director
FROM movie
ORDER BY movie_name,movie_year");
$stmt->execute();
$result=$stmt->fetchAll();
foreach ($result as $row) {
var_dump($row);
}
} catch (PDOException $e) {
echo $e->getmessage();
}
**And my result**
我的问题是
0 => string 'Bruce Almighty' (length=14)
1 => string '2003' (length=4)
.
.
.
我只请求 movie_name
、movie_year
、movie_type
、movie_leadactor
、movie_director
但它显示额外的行,例如 0 => string 'Bruce Almighty' (length=14)
转储为您提供有关数组中每个变量的信息。因此,字符的类型和数量。如果你只是想输出它们。
foreach ($result as $row) {
echo $row['movie_name'].','. $row['movie_year'].','.$row['movie_type'].','.$row['movie_leadactor'].','.$row['movie_director'].'<br />';
}
更改显示子项的限制
; with sane limits
xdebug.var_display_max_depth = 16
xdebug.var_display_max_children = 400
xdebug.var_display_max_data = 2048
; with no limits
; (maximum nesting is 1023)
xdebug.var_display_max_depth = -1
xdebug.var_display_max_children = -1
xdebug.var_display_max_data = -1
也可以在编码方面完成以下操作
ini_set('xdebug.var_display_max_depth', 16);
ini_set('xdebug.var_display_max_children', 400);
ini_set('xdebug.var_display_max_data', 2048);
fetchAll()
的第一个参数是fetch_style
其中
Controls the contents of the returned array as documented in PDOStatement::fetch(). Defaults to value of PDO::ATTR_DEFAULT_FETCH_MODE (which defaults to PDO::FETCH_BOTH)
这就是为什么当您 var_dump($row);
时,您的 array.You 中同时获得了 numeric
和 associative
格式数据,只需要在 $stmt->setFetchMode(PDO::FETCH_ASSOC);
之前设置 $stmt->execute();
或使用 $result = $stmt->fetchAll(PDO::FETCH_ASSOC)
作为关联索引。
try {
$conn = new PDO("mysql:host=localhost;dbname=moviesite","root","");
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT movie_name,movie_year,movie_type,movie_leadactor,movie_director
FROM movie
ORDER BY movie_name,movie_year");
//ADD BELOW LINE
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();
//OR REPLACE BELOW LINE LIKE $result=$stmt->fetchAll(PDO::FETCH_ASSOC);
$result = $stmt->fetchAll();
foreach ($result as $row) {
var_dump($row);
}
} catch (PDOException $e) {
echo $e->getmessage();
}