gpt4 book ai didi

php - 来自 PHP 的 MySQL 查询返回不正确的结果

转载 作者:行者123 更新时间:2023-11-29 06:27:06 25 4
gpt4 key购买 nike

我的 MySQL 表“tracks”有这两个字段:

Id (Int)
Name (Varchar 255)

值是:

1   Day 1
2 Day 2
3 Day 3

我正在尝试使用以下函数从 PHP 检索所有轨道:

function getTracks() {
$query = sprintf('select * from tracks');
return contentRetrieverDataBaseQuery($query)->fetchAssoc();
}

function contentRetrieverDataBaseQuery($query) {
$settings = contentRetrieverGetSettings();
Database::addConnectionInfo('contentRetriever', 'default', $settings['database_connection']);
db_set_active('contentRetriever');
$result = db_query($query);
db_set_active();
return $result;
}

在 phpmyadmin 上运行 select * from event_tracks 我得到了正确的结果。

当我这样做时:

$tracks = getTracks();
foreach ($tracks as $track) {
echo $track['name'];
}

我得到一个输出“1D”,它是 ID 和名称的第一个字母。

我做错了什么?

编辑:更正了数据库的名称

最佳答案

->fetchAssoc() 总是返回一行查询结果,这意味着您的数组是一条记录,并且您的循环将把该行的字符串值放入 $track。然后将 $track 当作一个数组来使用,生成以下等效代码:

$arr = array('abc', 'def'); // your one row of query results.
foreach($arr as $value) {
// $value is now 'abc';
echo $value['name']; // parsed/executed as $value[0];
// output is 'a'
}

字符串可以被视为字符数组,这就是为什么 PHP 没有提示 $tracks['name']。它只是将 ['name'] 视为使用非数字数组索引的愚蠢尝试,并将其转换为 0

关于php - 来自 PHP 的 MySQL 查询返回不正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30334188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com