当前位置:首页 » 数据仓库 » php怎么选择数据库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

php怎么选择数据库

发布时间: 2022-07-07 02:58:20

① thinkphp 用redis 怎么选择数据库

再配置一个数据库连接,设置默认数据库是redis,第二个数据库可选使用,比如:

$model=newModel();
$data=$model->db(1,'db2')->query($sql);//db2是在配置里的另外一个数据库连接

② 如何使用PHP操作Mysql数据库

<?php

//首先安装好你的MySQL数据库

$host='';#主机地址
$user='';#用户名
$pwd='';#密码
$port='';#MySQL所使用的端口号

$r=mysql_connect($host,$user,$pwd,$port);#连接MySQL

mysql_select_db($dbname);#选择数据库

//进行增删改查

③ php怎么操作数据库

//链接数据库
$db=mysql_connect("localhost", "root","123456");
$sqlname="database";
mysql_select_db($sqlname,$db);
session_start();
mysql_query("SET NAMES 'utf8'",$db);
?>

<?
//创建结果集
$sql = "SELECT * FROM kecheng";
$result = mysql_query($sql);
$rs= mysql_fetch_array($result);
?>

<?
//修改数据
$sql = "UPDATE news SET title='1111' where news_id=1";
$result = mysql_query($sql);
?>

<?
//删除数据
$sql = "DELETE from news where news_id=1";
$result = mysql_query($sql);
?>

<?
//添加数据
$sql = "INSERT INTO news (title,fenshu) VALUES ('a',1)"
$result = mysql_query($sql);
?>

④ thinkphp redis 怎么选择数据库

1、redis 中的每一个数据库,都由一个 redisDb 的结构存储。其中,redisDb.id 存储着 redis 数据库以整数表示的号码。redisDb.dict 存储着该库所有的键值对数据。redisDb.expires 保存着每一个键的过期时间。

2、当redis 服务器初始化时,会预先分配 16 个数据库(该数量可以通过配置文件配置),所有数据库保存到结构 redisServer 的一个成员 redisServer.db 数组中。当我们选择数据库 select number 时,程序直接通过 redisServer.db[number] 来切换数据库。有时候当程序需要知道自己是在哪个数据库时,直接读取 redisDb.id 即可。

3、既然我们知道一个数据库的所有键值都存储在redisDb.dict中,那么我们要知道如果找到key的位置,就有必要了解一下dict 的结构了:

typedef struct dict {

// 特定于类型的处理函数
dictType *type;

// 类型处理函数的私有数据
void *privdata;

// 哈希表(2个)
dictht ht[2];

// 记录 rehash 进度的标志,值为-1 表示 rehash 未进行
int rehashidx;

// 当前正在运作的安全迭代器数量
int iterators;
} dict;
由上述的结构可以看出,redis 的字典使用哈希表作为其底层实现。dict 类型使用的两个指向哈希表的指针,其中 0 号哈希表(ht[0])主要用于存储数据库的所有键值,而1号哈希表主要用于程序对 0 号哈希表进行 rehash 时使用,rehash 一般是在添加新值时会触发,这里不做过多的赘述。所以redis 中查找一个key,其实就是对进行该dict 结构中的 ht[0] 进行查找操作。

4、既然是哈希,那么我们知道就会有哈希碰撞,那么当多个键哈希之后为同一个值怎么办呢?redis采取链表的方式来存储多个哈希碰撞的键。也就是说,当根据key的哈希值找到该列表后,如果列表的长度大于1,那么我们需要遍历该链表来找到我们所查找的key。当然,一般情况下链表长度都为是1,所以时间复杂度可看作o(1)。

二、当redis 拿到一个key 时,如果找到该key的位置。

了解了上述知识之后,我们就可以来分析redis如果在内存找到一个key了。

1、当拿到一个key后, redis 先判断当前库的0号哈希表是否为空,即:if (dict->ht[0].size == 0)。如果为true直接返回NULL。

2、判断该0号哈希表是否需要rehash,因为如果在进行rehash,那么两个表中者有可能存储该key。如果正在进行rehash,将调用一次_dictRehashStep方法,_dictRehashStep 用于对数据库字典、以及哈希键的字典进行被动 rehash,这里不作赘述。

3、计算哈希表,根据当前字典与key进行哈希值的计算。

4、根据哈希值与当前字典计算哈希表的索引值。

5、根据索引值在哈希表中取出链表,遍历该链表找到key的位置。一般情况,该链表长度为1。

6、当 ht[0] 查找完了之后,再进行了次rehash判断,如果未在rehashing,则直接结束,否则对ht[1]重复345步骤。

到此我们就找到了key在内存中的位置了。

⑤ php怎么连接数据库

1、数据库连接第一步:配置mysql_connect()的参数
参数依次为:主机地址,用户名,用户密码
2、mysql_pconnect()与mysql_connect()是不一样的,pconnect顾名思义是持久连接
3、服务器连接成功后,需要你选择你需要用的数据库
4、使用mydql_close()可以关闭数据库连接资源,避免长时间占用启用资源消耗
5、mysqli_connect( )是mysql连接的另一种方式,参数形式一样
6、首次使用mysql连接数据库时,要记得使用输入逻辑判断,服务器连接不成功或者选择数据库不成功,都要用Mysql_error或者mysql_errno来报错
7、mysql的报错,能够帮助你准确地定位到错误发生在哪里。

⑥ 选择MySQL数据库的命令以及PHP脚本下的操作方法

在你连接到
MySQL
数据库后,可能有多个可以操作的数据库,所以你需要选择你要操作的数据库。
从命令提示窗口中选择MySQL数据库

mysql>
提示窗口中可以很简单的选择特定的数据库。你可以使用SQL命令来选择指定的数据库。
实例
以下实例选取了数据库
TUTORIALS:
[root@host]#
mysql
-u
root
-p
Enter
password:******
mysql>
use
TUTORIALS;
Database
changed
mysql>
执行以上命令后,你就已经成功选择了
TUTORIALS
数据库,在后续的操作中都会在
TUTORIALS
数据库中执行。
注意:所有的数据库名,表名,表字段都是区分大小写的。所以你在使用SQL命令时需要输入正确的名称。
使用PHP脚本选择MySQL数据库
PHP
提供了函数
mysql_select_db
来选取一个数据库。函数在执行成功后返回
TRUE
,否则返回
FALSE

语法
bool
mysql_select_db(
db_name,
connection
);
实例
以下实例展示了如何使用
mysql_select_db
函数来选取一个数据库:
<html>
<head>
<title>Selecting
MySQL
Database</title>
</head>
<body>
<?php
$dbhost
=
'localhost:3036';
$dbuser
=
'guest';
$dbpass
=
'guest123';
$conn
=
mysql_connect($dbhost,
$dbuser,
$dbpass);
if(!
$conn
)
{
die('Could
not
connect:
'
.
mysql_error());
}
echo
'Connected
successfully';
mysql_select_db(
'TUTORIALS'
);
mysql_close($conn);
?>
</body>
</html>
PS:MySQL
的数据类型
MySQL中定义数据字段的类型对你数据库的优化是非常重要的。
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
数值类型
MySQL支持所有标准SQL数值数据类型。
这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE
PRECISION)。
关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。
BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。
作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。下面的表显示了需要的每个整数类型的存储和范围。
日期和时间类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
TIMESTAMP类型有专有的自动更新特性。
字符串类型
字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。
CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
BINARY和VARBINARY类类似于CHAR和VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。
BLOB是一个二进制大对象,可以容纳可变数量的数据。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们只是可容纳值的最大长度不同。
有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。这些对应4种BLOB类型,有相同的最大长度和存储需求。