php - PDO - 如何在结果索引中使用表和列?

标签 php mysql pdo

我有两个表,它们都有“名称”作为列。我认为我的搜索是成功的,但是当作为数组中的索引时,如何区分两者?

SQL 查询:

$result = $pdo->prepare('SELECT * FROM `profs` 
                        INNER JOIN `universities` 
                        ON `profs`.`school_id` = `universities` . `id` 
                        AND `profs` . $searchtype LIKE :query');
$result->bindValue(':query', "%" . $_GET['query'] . "%");
$result->execute();

我注意到我可以使用句点来指定哪个表(例如 profs.school_id 或 Universities.id)

我尝试了类似的方法来在表格中显示结果:

foreach ($result as $record) {
    echo "<tr><td>", '<a href="individual_sample.php?id=', $record['id'], '">', $record['name'], '</a></td>';
    echo "<td>", $record['universities.name'], "</td>";
    echo "<td>", $record['subject'], "</td>";
    echo "<td>", $record['latitude'], ",", $record['longitude'], " </td>";
    echo "<td>", $record['avg_rating'], "</td></tr>";
    }
    echo    '</table>

我尝试了 $record['universities.name'] 但出现以下错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'profs.school' in 'on clause'Your search did not return any results

最佳答案

尝试这样的事情:

SELECT profs.*, universities.name as university_name FROM `profs` 
INNER JOIN `universities` ON `profs`.`school_id` = `universities` . `id` 
AND `profs` . $searchtype LIKE :query

然后像

一样访问它
$record['university_name']

虽然

$searchtype 

不应该是“学校”,因为它不是“教授”中的字段

关于php - PDO - 如何在结果索引中使用表和列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41126948/

相关文章:

javascript - 提交联系表单 7 时重定向至由表单值指定的 URL

php - 字段 is_add(tinyint(1)),行不会显示

php - 使用 PHP 将图像上传到 FTP

php - 如何存储单击的表格单元格的变量并将其传输到另一个表格?

php - 使用 PHP PDO 事务的单个与多个 SQL UPDATE 性能

php - 从 mysql_connect 切换到 PDO : mysql_num_rows() expects parameter 1 to be resource

php - 如何在PHP中设置cURL的 "--upload-file"参数?

php - MYSQL查询的问题(效率)

php - 新闻提要的 SQL 内部连接

PHP 文件上传不起作用,注意输出到浏览器