在PHP中链接mysql数据库,首先要知道PHP中提供的链接mysql数据库API(这里为什么说是mysql的呢?那是因为如果是别的数据库例如Oracle,就要用链接Oracle的API了,但是基本的步骤都差不多的,本文只说mysql),一般会用到的有mysql_connect()、mysql_select_db()和mysql_query()。
mysql_connect()是链接数据库,mysql_select_db()是用哪个数据库,跟输入(use 表名;)一样,mysql_query()是执行一句sql代码。与数据库进行交互,首先必须是跟数据库建立链接,数据库实际上是一个服务端,我们访问它的话需要跟它建立链接,当然数据库也要向外界提供访问权限才能让我们访问到,一般在企业应用中,数据库服务器是不对外开放的,要访问它只能通过内网的方式,如果外网的话,那只能是通过类似于vpn的方式,先访问web服务器,然后通过web服务器访问数据库服务器。在这里,我之前的公司的做法是,因为服务器都不是我们自己的,都在别人那里,所以首先登陆vpn账号(这个是合作公司提供的),链接到合作服务器那边的内网,然后登陆他们的web服务器,这里要说明一下,一般来说服务器用的都是Linux系统或者Unix系统,所以为了方便起见用了一个工具来登陆到他们的终端,这个软件叫做SecureCRT,有了VPN还不行,这里还需要一个密钥,是用SSH的,也是合作公司提供的。用SecureCRT可以绑定一个密钥,就可以登陆上去了。然后访问他们的数据库服务器也是需要SSH协议,SSH 192.XX.XXX 的方式访问他们的数据库服务器。登陆之后就可以用mysql的命令了:
mysql -u root -p回车
输入数据库密码回车就可以登陆进去了
然后进去一顿狂敲:
show databases;
use 表名;
select * from 表名;
update 表名 set 字段 where 约束条件;
. . .
额有点扯远了,这里只是为了说明实际中是怎么做的,这里的PHP要放到web服务器上面,这样才能通过内网的IP访问到数据库服务器。回到链接数据库,一般我会封装好一个PHP为conn.php,作用是链接数据库,然后提供一些CRUD的方法,需要用到的时候只要 include("conn.php")就可以了。
<?PHP
$host = "192.168.1.2:3306";//数据库服务器的IP
$user = "root";//登陆用户名
$pwd = "123456";//密码
$dataDase = "要访问的数据库名字";
initDB($host, $user, $pwd, $dataDase);
//初始化
function initDB($host, $user, $pwd, $dataDase){
mysql_connect($host, $user, $pwd) or webExit("Unable to connect to mysql");
mysql_select_db($dataDase) or webExit("Unable to select database");
mysql_query("set names utf8");//设置编码方式UTF-8
}
//错误提示输出
function webExit($str){
//die("SQL ERROR");
echo "connected=$str";
die("<HTML><BODY bgcolor=#E6E6FF><br><center>".$str."</center><br><hr /></BODY></HTML>");
}
//插入记录
function insertValue($table,$insertField,$insertContent){
$sql="insert into $table (".$insertField.") values(".$insertContent.")";
mysql_query($sql) or webExit($sql);
}
//更新记录
function updateValue($table,$field,$sqlWhere){
$sql="update $table set $field $sqlWhere";
$result=mysql_query($sql) or webExit($sql);
}
//删除记录
function deleteValue($table,$sqlWhere){
$sql="delete from $table $sqlWhere";
$result=mysql_query($sql) or webExit($sql);
}
//获取记录
function getValue($table,$field,$sqlWhere){
$sql="select $field from $table $sqlWhere";
$result=mysql_query($sql) or webExit($sql);
$rows=mysql_fetch_object($result);
return $rows;
}
//获取多条记录
function getValues($table,$field,$sqlWhere){
$sql="select $field from $table $sqlWhere";
$result=mysql_query($sql) or webExit($sql);
return $result;
}
?>