PHP文本数据库的搜索方法
成都创新互联公司专注于企业全网营销推广、网站重做改版、安宁网站定制设计、自适应品牌网站建设、HTML5建站、商城网站开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为安宁等各大城市提供网站开发制作服务。
searchstr=("/".preg_quote($searchstr)."/");
//$searchstr是查找的关键字
$records=file($file);//获取所有的记录数
//$file是查找的数据文件
$search_reocrds=preg_grep
($searchstr,
$records);//开始查找记录
//$search_reocrds为查找到的记录数
unset($records);
if($search_records){
//开始显示记录,写下你自己的处理程序********************
while
(list
($key,
$val)
=
each
(
$search_records))
{
echo
"$val
";
}
//****************************************************
}
原生SQL查询有 query() 和 execute() 两个方法:
query():用于 SQL 查询操作,并返回符合查询条件的数据集
execute():更新和写入数据的 SQL 操作,返回影响的记录数
query()
query() 方法是用于 SQL 查询操作,和select()方法一样返回符合查询条件的数据集。
例子:
public function read(){
// 实例化一个空模型,没有对应任何数据表
$Dao = M();
//或者使用 $Dao = new Model();
$list = $Dao-query("select * from user where uid5");
if($list){
$this-assign('list', $list );
$this-display();
} else {
$this-error($Dao-getError());
}
}
对于 query() 方法返回的数据集,跟 select() 一样,可以在模板里直接循环输出。
execute()
execute() 方法用于更新和写入数据的 SQL 操作(注:非查询操作,无返回数据集),返回影响的记录数。
例子:
public function read(){
header("Content-Type:text/html; charset=utf-8");
// 实例化一个空模型,没有对应任何数据表
$Dao = M();
//或者使用 $Dao = new Model();
$num = $Dao-execute("update user set email = '12345@xxx.com' where uid=3");
if($num){
echo '更新 ',$num,' 条记录。';
}else{
echo '无记录更新';
}
}
如果查询比较复杂或一些特殊的数据操作不能通过 ThinkPHP 内置的 ORM 和 ActiveRecord 模式实现时,就可以通过直接使用原生 SQL 查询来实现。
注意:以上都是 user 没有表前缀的例子,在查询语句中,查询的表应该写实际的表名字(包括前缀)。
1.action 后面的页面没有指定
2.if($name) 改成 if($name!=‘’)
3.把$sql 打印出来
4.页面报错内容是什么
完善上面4项,纠错毫无压力。
?php
$localhost = 'localhost';//本地的基本是用localhost
$dbname = 'dbname';//数据库名
$user = 'user';//用户名
$pw = 'pw';//密码
$pdo = new PDO("mysql:host=".$localhost.";dbname=".$dbname."",$user,$pw);
$pdo-query('set names utf8');
$username = $_POST['username'];
$userpassword = $_POST['userpassword'];
$sql = 'SELECT userpassword FROM `userinf` WHERE `username`="' . $username . '"';
$row = $pdo-query($sql)-fetch();//查询数据库
if($userpassword == $row['userpassword'])
{
@header("Location: http://网址");//配对成功,跳转
}
else
{
exit('不好意思,你的密码不对');
}
/*
就是这么的简单,但是一般的验证用户密码不是这样的,首先一般存数据库里面的密码都是加密的,通常的MD5加密
而且POST提交过来的数据也要过滤一下
*/
?
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""
html xmlns=""
head
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
title用户登录验证/title
/head
body
form method="POST"
用户名:input name="username" type="text" / | 密码:input name="userpassword" type="password" / | input type="submit" value="提交"
/form
/body
/html
目前好像只有指定定表来查询,你可以写个函数。。封装一下
数据库1
select * from 表1
select * from 表2
select * from 表3
……
数据库2
select * from 表1
select * from 表2
select * from 表3
……
然后把多个结果集获取出来。。
这是个思路。。具体你也可以把*改成你要搜索的字段。。
如果不想这么麻烦。。还想要简单一点的话。。我还有一个办法。。
那就是把整个数据库导出成一个.sql或者txt文件。。然后直接用记事本就可以搜索到整个数据库中有相应值的地方。。。然后搜索相应的表就可以了。。
嗯,你要更高级一点可以写个脚本让数据库定时备份下来。。然后搜索的时候直接去搜索这个备份的文件。