PHP查询未从SELECT语句返回所有列。

25 浏览
0 Comments

PHP查询未从SELECT语句返回所有列。

require_once ('../configuration/data_conn.php');
ini_set('display_errors', 1);
error_reporting(E_ALL);
$sql = "
    SELECT  
    product.id,
    product.name,
    product.code,
    product.supplier,
    product.date_created,
    product.total
    FROM product";
$req_sql = $conn->prepare($sql);
$req_sql ->execute();
$data_sql = $req_sql ->fetchAll(PDO::FETCH_ASSOC);
print_r($data_sql);

我只得到了3个字段:

[0] => Array
   (
    [id] => 1511
    [name] => 镜子
    [code] => CD-13480
  )
[1] => Array
   (
    [id] => 1512
    [name] => 椅子
    [code] => CD-13481
  )

但是当我在我的数据库工具中使用相同的查询时,它是正常的。

我确定我可以访问所有这些列,并且在我的php连接中使用相同的凭据登录到数据库。

感谢任何帮助。

0
0 Comments

问题原因:在SELECT语句中,对于包含特殊字符的列名supplier,作者将其类型更改为char,以解决问题。

解决方法:将特殊字符列名supplier的类型更改为char,即在SELECT语句中的product.supplier后面添加 :: char(100)。这样可以确保查询语句返回所有的列。

以下是作者提供的代码示例:

$sql = "
          SELECT  
          product.id,
          product.name,
          product.code,
          product.supplier :: char(100),
          product.date_created,
          product.total
    FROM product";

感谢您的帮助。

0