我认为mysql_field_table
有问题
我的查询 :
SELECT partners.buyer,
calls_nc_sell_daily.market,
partners.name,
calls_nc_sell_daily.partner_id_fk as 'partners_id_fk',
partners.seller
FROM partners, calls_nc_sell_daily
WHERE calls_nc_sell_daily.date >= '$date_start'
AND calls_nc_sell_daily.date <= '$date_stop'
AND partners.id = calls_nc_sell_daily.partner_id_fk
由以下 PHP 片段解析的 WHEN 结果字段:
$tables = array();
for($i=0;$i<$elements;$i++) {
$name = mysql_field_name($result,$i);
$tables[$name] = mysql_field_table($result,$name);
}
print_r($tables);
预期:
Array
(
[buyer] => partners
[market] => calls_nc_sell_daily
[name] => partners
[partners_id_fk] => calls_nc_sell_daily
[seller] => partners
)
实际:
Array
(
[buyer] => partners
[market] => partners
[name] => partners
[partners_id_fk] => partners
[seller] => partners
)
根据
PHP文档,mysql_field_table()
将字段偏移量而不是其名称作为第二个参数。因此,您的名称将转换为数字,从而导致所有迭代都为零。
$tables = array();
for($i=0;$i<$elements;$i++) {
$name = mysql_field_name($result,$i);
$tables[$name] = mysql_field_table($result, $i);
}
print_r($tables);
字符串 mysql_field_table ( 资源 $result , int $field_offset )
field_offset
数值字段偏移量。field_offset从 0 开始。如果不存在field_offset,则还会发出级别 E_WARNING 的错误。