mysql 多个select_SQL Select *从多个表

小编典典

是的你可以。最简单的方法是使用pdo,尽管至少还有一些其他扩展可以使用它。

$PDO->setAttribute(PDO::ATTR_FETCH_TABLE_NAMES, true);

而已。然后,您将获得类似的关联数组键$row['myTable.myColumn']。如果您也获取了一个对象(例如,通过PDO::FETCH_OBJECT),则请注意,因为您需要访问诸如$obj->{'myTable.myColumn'}

手册说该PDO::ATTR_FETCH_TABLE_NAMES属性仅受某些驱动程序支持。如果上述方法不起作用,则 可以 代替。

$pdoStatement->setFetchMode(PDO::FETCH_NUM);

$pdoStatement->execute();

//build our associative array keys

$qualifiedColumnNames = array();

for ($i = 0; $i < $pdoStatement->columnCount(); $i++) {

$columnMeta = $pdoStatement->getColumnMeta($i);

$qualifiedColumnNames[] = “$columnMeta[table].$columnMeta[name]”;

}

//fetch results and combine with keys

while ($row = $pdoStatement->fetch()) {

$qualifiedRow = array_combine($qualifiedColumnNames, $row);

print_r($qualifiedRow);

}

其他数据库扩展使用相同的基本模式

$res = mysql_query($sql);

//build our associative array keys

$qualifiedColumnNames = array();

for ($i = 0; $i < mysql_num_fields($res); $i++) {

$columnMeta = mysql_fetch_field($res, $i);

$qualifiedColumnNames[] = "$columnMeta[table].$columnMeta[name]";

}

//fetch results and combine with keys

while ($row = mysql_fetch_row($res)) {

$qualifiedRow = array_combine($qualifiedColumnNames, $row);

print_r($qualifiedRow);

}

$res = $mysqli->query($sql);

//build our associative array keys

$qualifiedColumnNames = array();

foreach ($res->fetch_fields() as $columnMeta) {

$qualifiedColumnNames[] = "{$columnMeta->table}.{$columnMeta->name}";

}

//fetch results and combine with keys

while ($row = $res->fetch_row()) {

$qualifiedRow = array_combine($qualifiedColumnNames, $row);

print_r($qualifiedRow);

}

这也应该与表别名一起使用(在php 7.1中测试)-合格的列名将使用表别名。

2020-05-17

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值