PHP连接数据库实例详解 PHP怎么总是数据库

2019-07-23 06:21栏目:编程学习

coreseek 做分页时找数据总数还真不好找。以为她会给多个方法(函数)什么的去获取,结果却不是。
第一须求明白:
num_matches:
当前归来的结果数,<= limit设置值。
max_matches: 最多重临的结果数,默感到1000,用户最两只好看看一千条搜索结果。那一个是在csft_mysql.conf中设置的。
total_found: 结果总的数量。索引中具有知足查询条件的文书档案总量。那几个是在您询问的回到结果中的数组中有的。当然前提是您不能够不在query前安装:$this->sc->SetArrayResult(true);
total: 最多再次回到结果数,取值取决于max_matches值和total_found值。如果total_found数超过max_matches,则total = max_matches,否则,total = total_found。那一个也是在您询问的回到结果中的数组中部分。当然前提也是你必须在query前设置:$this->sc->SetArrayResult(true);
诸如此比,了然了那多少个属性之后就足以做分页了。

连接MySQL数据库的三种格局:

作者们应当运用再次回到值中的total来做分页总的数量据。固然这一个不意味着真实的重返值(当再次回到值大于max_matches,也正是1000,如忠实再次来到2500,可是你却只好获得1000)。
代码是:

(1)利用PHP的数据库函数连接

复制代码 代码如下:

此措施是最常用的一种格局.

$this->sc->SetServer("127.0.0.1",9312);
  $this->sc->SetArrayResult(true);
  $this->sc->SetLimits($start,$page);
//如若急需探寻钦命全文字段的颠末,能够利用扩充相配方式:
  $this->sc->SetMatchMode(SPH_MATCH_ANY);
$res = $this->sc->Query($where,"main");
$count = $res['total'];

这里根本用到八个数据库函数:

本条¥count便是大家要的分页的总量据了。 别的的承袭怎么分页是以体制和数据结构做的,不可能长久以来,並且分页也是基础的东西,所以那边就不再多说分页的详细难题了。小编这里仅仅研商那些总量据的取值景况。因为多数人都取count($res['matches'])的值,不过那么些是分页后的回来结果,你不得不获取10,大概20要么别的的值。呵呵,那就好笑了。

mysql_connect () 创设与MySQL服务器的接连。

mysql_select_db ():选拔MySQL服务器中的数据库供未来的数额查询操作query处理。

mysql_query ():送出query字符串以扶助MySQL做相关的拍卖或实施。

mysql_fetch_row ():用来将查询结果result单行移到数组变量中。数组的目录是数字

目录,第二个索引值是0。

(2)通过ODBC连接

PHP通过ODBC连接MySQL数据库珍视用到四个函数:

Odbc_connect ():用来同ODBC数据源创设连接。

Odbc_do ():用来在创立连接之后实行数据库查询。

Odbc_result():用于获取当前记录行中有些字段的值。

Odbc_fetch_row ():用来把询问结果保存到数组,每一个数组成分对应一条记下。

笔者们先来看PHP的数据库函数连接方式实例:

接连到叁个 MySQL 数据库

在您能够访谈并拍卖数据库中的数据此前,您必须成立达到数据库的连天。

在 PHP 中,这么些职务通过 mysql_connect() 函数达成。

语法

mysql_connect(servername,username,password);参数 描述 

servername 可选。规定要连接的服务器。私下认可是 "localhost:3306"。 

username 可选。规定登陆所利用的用户名。暗中同意值是有着服务器进度的用户的称谓。 

password 可选。规定登陆所用的密码。暗许是 ""。

<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_close($con);
?>

面向对象mysqli(详细教程):

<?php
$mysqli = new mysqli('localhost','root','','volunteer');
if (mysqli_connect_errno()){
die('Unable to connect!'). mysqli_connect_error();
}
?>

pdo连接mysql(详细教程):

<?php
$db = new PDO('mysql:host=localhost;dbname=test', 'root', '');
try {
foreach ($db->query('select * from user') as $row){
print_r($row);
}
$db = null; //关闭数据库
} catch (PDOException $e) {
echo $e->getMessage();
}
?>

接下来大家还是能够使用ODBC连接数据库:

<?php
require_once './adodb5/adodb.inc.php'
$conn = &ADONewConnection('mysql');
$conn->connect('localhost','root','','test');
$conn->Execute("set names utf8");
$res = $conn->Execute("select * from user");
if (!$res){
echo $conn->ErrorMsg();
}else{
var_dump($res);
}
?>

mysql数据连接类:

<?php
//------------------------------------------------------------------------------------------
// ※Database() 构造函数,数据库起首参数
// ※Select() 查询
// ※GetRows() 重临查询的笔录总量
// ※Insert() 插入记录
// ※Update() 更新
// ※Delete() 删除
// ※Halt() 中断并彰显错误新闻*/
//------------------------------------------------------------------------------------------
define("DATABASETYPE", "1"); //定义数据库类型:1为MySql;2为SQL Server;3为Oracle;4为Odbc
define("SERVER", "localhost"); //Host name or IP address of the database server
define("DATABASE", "dbName"); //要连接的多少库名
define("USE奇骏", "tableName"); //用于连接数据库的用户名
define("PASSWOTiguanD", "paswd"); //用于连接数据库的密码

class Database {
var $dbLink; //连接句柄
var $result; //查询句柄
var $insId; //Insert()成功重回AUTO_INCREMENT列的值
var $rows; //再次来到数据数组
var $numRows; //重回数据数目
var $dbHost, $dbUser, $userPassword, $database;
var $dbType = DATABASETYPE;
var $msgFlag = "yes"; //yes:show the Mysql message ; no: die by show "Halted."

function Database($dbHost = SERVER, $dbUser = USER, $userPassword = PASSWORD, $database = DATABASE) {
switch ($this->dbType) {
case 1:
$this->dbLink = @mysql_pconnect($dbHost, $dbUser, $userPassword); // or die("Can't Connect to Remote Host!");
@mysql_select_db($database, $this->dbLink); // or die ("Can't Connect to Remote Host!");
break;
case 2:
break;
}
return true;
}

/* SQL:Select() 返回为false无结果 */

function Select($table, $columns, $condition = 1) {
$sql = "select $columns from $table where $condition ";
$this->result = @mysql_query($sql, $this->dbLink);
unset($this->rows);
if ($this->result) {
$i = 0;
if (!($this->rows = array("$i" => @mysql_fetch_array($this->result))))
return false;
if (($this->numRows = @mysql_num_rows($this->result)) == 0)
return false;
while ($tempRows = @mysql_fetch_array($this->result)) {
array_push($this->rows, $tempRows);
}
} else {
$this->Halt($sql);
return false;
}
return true;
}

/* SQL:GetRows() 重返查询的记录总的数量 */

function GetRows($table, $condition = 1) {
$sql = "select count(1) as count from $table where $condition";
$this->result = @mysql_query($sql, $this->dbLink);
if ($this->result) {
$temp = @mysql_fetch_array($this->result);
$this->numRows = $temp[count];
} else {
$this->Halt($sql);
return false;
}
return $this->numRows;
}

/* SQL:Insert() */

function Insert($table, $columns, $values) {
$sql = "insert into $table ($columns) values ($values)";
$this->result = @mysql_query($sql, $this->dbLink);
if ($this->result)
$this->insId = @mysql_insert_id($this->dbLink);
else {
$this->Halt($sql);
return false;
}
return true;
}

/* SQL:Update() */

function Update($table, $setings, $condition) {
$sql = "update $table set $setings where $condition";
$this->result = @mysql_query($sql, $this->dbLink);
if ($this->result)
$this->numRows = @mysql_affected_rows($this->result);
else {
$this->Halt($sql);
return false;
}
return true;
}

/* SQL:Delete */

function Delete($table, $condition) {
$sql = "delete from $table where $condition";
$this->result = @mysql_query($sql, $this->dbLink);
if ($this->result)
$this->numRows = @mysql_affected_rows($this->result);
else {
$this->Halt($sql);
return false;
}
return true;
}

/* Halt():error message */

function Halt($msg) {
if ($this->msgFlag == "yes") {
printf("Database Query Error:%s
n", $msg);
printf("MySql Error:%s
n", mysql_error());
}else
echo "<META HTTP-EQUIV=REFRESH CONTENT=ƆURL=../include/error.htm'>"; //自定贰个失误提醒文件
return false;
}
}

switch ($db->dbType) {
case 1:
@mysql_close();
break;
case 2:
break;
}
$db = new Database();
?>

友情提醒:

比如出现延续mysql数据库中文乱码大家能够在连年数据库查询在此以前拉长mysql_query("set names utf8"); 假使你是gbk就使用gbk编编码了

版权声明:本文由威尼斯人app发布于编程学习,转载请注明出处:PHP连接数据库实例详解 PHP怎么总是数据库