重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
也许是我孤陋寡闻了,似乎没有办法跨库关联查询吧。如果非要跨库关联,我能想到的办法就是把两边的数据查询出来并存入一个临时表,再查询临时表。不过这种方法只是用于不同库中相同或相似的表,比如有的数据量较大的分库项目。
崂山ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
在回过头来看你的项目需求,其实根本不需要跨库的。首先在任意一个库里创建一个表,在发送会议信息给会员的时候,除了这个表的主键之外,只需要记录会员的id和会议的id,这两个id分别从两个库里获取。
你如果要查看某条会议信息发送的详情,就通过这两个id分别从两个库里获取会员信息和会议信息。
你如果要查询出列表,用笨办法,因为你这个表肯定和会员或会议其中一个在一个库了,可以关联,然后在列表循环中逐条查询另一个数据,虽然这样有些影响性能,但是也比“跨库关联查询”好点,况且如果数据多的话,一般都是分页操作的话,一个列表最多二三十条记录,一次查询二三十也不会有太大影响。
另一个笨办法,就是把发送记录列表中所有需要列出的字段都记录在发送会议信息的记录表里,这样就不需要在循环查询另一个表了。但缺点就是这里面的数据就不能和会员以及会议信息的数据同步,除非你在更新会员以和会议信息的数据的同时更新这个表的数据。
但不管用哪种方式,我觉得都比“跨库关联查询”要好,即使真的有“跨库关联查询”的方法。
php中有连接数据库的方法,$link
=
mysql_connect('
localhost
','root','root')
or
die(mysql_errno());
mysql_select_db
('test')
or
die
(mysql_errno());
mysql_query('SET
NAMES
gbk');
$sql
=
"SELECT
*
FROM
test
LIMIT
0,20";
$result
=
mysql_query($sql)
or
die(mysql_errno());
while($msg
=
mysql_fetch_array($result)){
print_r
($msg);
}
mysql_free_result($result);
mysql_close
($link);
html的中的变量可以通过form表单把
变量值
传到php中进行连库操作,例如
那么在a.php中就这样接收这个参数
$username=$_POST['username'];
然后再进行连库操作
用一句好,两句是坏习惯,因为PHP运行字符串换行,例如下面的语句是对的:
$mysql_command="
insert into $table_name(name,numb,age)
values ('刘华','200801',27)";
出现乱码的问题,就是编码造成的,你保存的文件里面是:
mysql_query("set names gb2312");
那么查询的文件也应该这样设置,你的PHP源文件的编码也必须ANSI(GB2312),数据的设置也必须是GB2312,查询和插入数据的网页浏览器编码也必须是GB2312,所有的统一了就不会是????
PHP与数据库连接最常用的方法有四种,它们分别是MySQL、mysqli、pdo、adodb,其中以第一种方法最常用,方法如下:
//与数据库服务器连接
$conn = @mysql_connect('数据库主机名','用户名','密码');
//选择具体数据库
mysql_select('数据库名',$conn);
//如果只打开了一个数据库连接,则$conn可以省略。
谈一点个人的看法:
从库结构设计来看,通常来说,两个库相关联的字段是以唯一值为基础的,可能是一对多的关系,但通常是用的 ID 来做。比如:news 的 newstype 用 newstype_ID 与 newstype 库的 ID 相关联。
建议可以参考一下其他数据库的设计,比如:Discuz 论坛中的库结构。
$query = mysql_query("SELECT a.*,b.wbid,b.content, c.potoid,c.upimg FROM a LEFT JOIN b ON a.userid=b.userid LEFT JOIN c ON a.userid=c.userid");
while($rt = mysql_fetch_array($query)) {
print_r($rt);
}