php - mysql_field_table() 的错误结果

标签 php mysql

我认为 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

WHEN 结果字段由以下 PHP 片段解析:

$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
)

最佳答案

mysql_field_table()根据 PHP 文档,将字段 offset 而不是其名称作为第二个参数。因此,您的姓名将被转换为数字,这会导致所有迭代的结果为零。

$tables = array();
for($i=0;$i<$elements;$i++) {
   $name =  mysql_field_name($result,$i);
   $tables[$name] = mysql_field_table($result, $i);
}
print_r($tables);

string mysql_field_table ( resource $result , int $field_offset )

field_offset

The numerical field offset. The field_offset starts at 0. If field_offset does not exist, an error of level E_WARNING is also issued.

关于php - mysql_field_table() 的错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19981158/

相关文章:

java - ClassNotFoundException MySQL OpenShift

mysql - 获取一天内用户查看次数最多的网址

PHP sql 查询 WHERE 值 = 0

php - 在 PHP 中加密 (mcrypt),在 Ruby 中解密 (OpenSSL::Cipher)

php - 检查数组 PHP 中特定值的次数

php - MYSQL查询开始时间和结束时间

php - Symfony 5 带有集合一对一关系的嵌入表单出现错误

mysql - 创建一个名称中包含空格的表

php - sql查询在连接表中仅获取许多值的1个

php - MySQL 连接在 PHP 中有效,但在 ASP 中无效