php - PHP 中的 MySQL 连接结果不同?

标签 php mysql database join phpmyadmin

我有一个问题:

SELECT * FROM categorys 
LEFT JOIN category_info ON categorys.cat_id=category_info.cat_id 
WHERE `cat_name` = 'aname'
ORDER BY `cat_order`

当我在 phpMyAdmin 中运行它时,无论第二个表中是否存在匹配项,我都会返回一个 cat_id。

但是,当我在我的 PHP 代码中运行这个查询时,我得到一个空白的 cat_id,如 print_r() 所示:

Array ( [cat_id] => [cat_name] => baths [type] => main [cat_order] => 99 [cat_img] => [display] => 1 [deleted] => 0 [desc_id] => [desc] => [text] => )

为什么完全相同的查询会出现不同的结果?

编辑: 我的 PHP 代码:

$getcatidsql = "SELECT * FROM categorys 
LEFT JOIN category_info ON categorys.cat_id=category_info.cat_id 
WHERE `cat_name` = '{$cname}'
ORDER BY `cat_order";   
$getcatidresult = $db->query( $getcatidsql );
$catdata = $db->fetchRow( $getcatidresult );

function query() {
  $this->query_total++;
  if (func_num_args() == 1) {
    $sql = func_get_arg(0);
  } else {
    $args = func_get_args();
    for ($i=1;$i<count($args);$i++) if (!is_numeric($args[$i])) $args[$i] = '"'.mysql_real_escape_string($args[$i]).'"';
    $sql = vsprintf(array_shift($args),$args);
  }
  if ($result = mysql_query($sql,$this->db_connection)) {
    return $result;
  } else {
    $this->dberror( $this->db_connection, $sql );
  }
}

function fetchRow($result,$type=MYSQL_ASSOC)
{
    if($result)
        $row = mysql_fetch_array($result,$type);
    return $row;
}

最佳答案

我认为你不能使用 select * (也是因为两个表中的列名相同),而是根据你的需要选择字段

  select table_name.field, table_name.field2, other_table_name.field1 

.. 你将从 php 代码和 phpmyadmin 中得到正确的结果

关于php - PHP 中的 MySQL 连接结果不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7390486/

相关文章:

javascript - Phonegap应用程序与php服务器通信而不使用ip地址

PHP、MySQL、数据库

php - 学说查询生成器 : how to do a query with inner joins conditions

MySQL评论表结构问题

php - 从数据库中过滤数据

php - Xdebug 段错误

mysql - 如何设计mvc实体模型

android - SQLite 数据库不返回任何行

sql - View 可以更新/插入/删除吗?如果是,在什么条件下?

database - Django 模型加入一对多关系以在模板中显示