gpt4 book ai didi

php - 如何在整个数据库中搜索数据

转载 作者:行者123 更新时间:2023-11-29 13:10:13 24 4
gpt4 key购买 nike

我在一个数据库(my_db)中创建了 3 个表 tbl1、tbl2 和 tbl3。我的问题是如何在一次搜索中搜索这三个表中的数据?

我的代码。

<?php
include('connect-db.php');
include('sort.php');

$Search = isset($_GET['Search']) ? '%'.$_GET['Search' ].'%' : '' ;

$result = mysql_query("SELECT * FROM tbl1, tbl2, tbl3 where name like '$Sea'");

?>

最佳答案

Joins如果这些表中的每一个都彼此具有共享关系,则使用。例如,用户可以发布个人资料和文档列表。这会将每个表输出为结果中的附加列。

SELECT * FROM tbl1 
JOIN tbl2 ON tbl1.id=tbl2.id
JOIN tbl3 ON tbl1.id=tbl3.id
WHERE tbl1.name LIKE '$Sea'

如果您想将每个表添加为结果中的额外行,则可以使用 union 。您需要在所有表中以相同的方式构建结果才能使其发挥作用。因此,当表的结构非常相似时,联合效果最好。请记住,并集将从两个集合中删除重复的条目。如果您可以保证两个集合不同,或者您不关心重复项,那么 union all 的性能会更好,尤其是当您的结果集变得更大时。

SELECT * FROM tbl1 WHERE tbl1.name LIKE '$Sea'
UNION SELECT * FROM tbl2 WHERE tbl2.name LIKE '$Sea'
UNION SELECT * FROM tbl3 WHERE tbl3.name LIKE '$Sea'

更新:另外,正如其他人提到的,您正在使用已弃用的 mysql 函数。以下是连接和使用 MYSQL 的更好方法的示例:

<?php
/* Connect to an ODBC database using PDO (which is more secure than the
older mysql libraries because it supports query parameters). */
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

try {
$conn = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}

// Query example
$sql = 'SELECT * FROM table_name';
foreach($conn->query($sql) as $row) {
echo $row['id'].', '.$row['anotherfield'].'<br>';
}

关于php - 如何在整个数据库中搜索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22196335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com