连接到一个 MySQL 数据库
在您能够访问并处理数据库中的数据之前,您必须创建到达数据库的连接。
在 PHP 中,这个任务通过 mysql_connect() 函数完成。
语法
mysql_connect(servername,username,password);
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
// some code
?>
关闭连接
脚本一结束,就会关闭连接。如需提前关闭连接,请使用 mysql_close() 函数。
mysql_close($con);
1.查询操作
header("Content-Type:text/html;charset=utf-8");
// 1.获取连接
$link = mysql_connect('localhost','root','123456');
if(!$link){
die("连接错误" . mysql_error());
}else{
echo 'Ok' . '<br/>';
}
//2. 选择数据库
mysql_select_db('test',$link);
//3. 设置操作编码
//保证php程序是按照utf8码操作
mysql_query("set names utf8");
//4. 发送指令
$sql = 'select * from user1';
//$result 表示结果集,可以理解为是一张表,返回的结果集放在内存中
$result = mysql_query($sql,$link);
//5. 接收返回结果,并处理
//mysql_fetch_row 会依次取出结果集$result的下一行数据复制给$row
//$row 是一个数组
while($row = mysql_fetch_row($result))
{
//echo "<br/> $row[0] --- $row[1] --- $row[2]";
foreach($row as $k=>$v){
echo $k . '---' . $v ;
}
echo "<br/>";
}
//6. 释放资源,即释放内存
mysql_free_result($result);
//7. 关闭连接,这句话可以没有,但建议有。有的话也要过几分钟关闭
mysql_close($link);
2. 插入,删除,更新
header("Content-Type:text/html;charset=utf-8");
$link = mysql_connect('localhost','root','123456');
if(!$link){
die('cuo le' . mysql_error());
}
mysql_select_db('test',$link) or die(mysql_error());
mysql_query('set names utf8');
$sql = "insert into user11(name,password,email,age) values('xiaoming',md5('123546'),'xiaoming@qq.com',20)";
//删除操作
//$sql = "delete from user1 where id=5";
//更新操作
//$sql = "update user1 set age = 100 where id = 4";
//如果是dml操作,则返回bool
$result = mysql_query($sql,$link);
if(!$result){
echo "操作失败" . mysql_error();
die();
}
//看看有几条数据
if(mysql_affected_rows($link)>0){
echo "操作成功";
}else{
echo "没有影响到行数";
}
//加上这句话会报错,因为返回的是bool值
//mysql_free_result($result);
mysql_close($link);
封装工具类:
<?php
/**
* Created by PhpStorm.
* User: Hua
* Date: 2015/10/18
* Time: 15:18
*/
class SqlTool
{
private $link;
private $host = 'localhost';
private $user = 'root';
private $password = '123456';
private $db = "test";
public function __construct()
{
$this->link = mysql_connect($this->host,$this->user,$this->password);
if(!$this->link){
die("连接失败" . mysql_error());
}
mysql_select_db($this->db,$this->link);
mysql_query("set names utf8");
}
//完成select
public function execute_dql($sql)
{
$result = mysql_query($sql) or die(mysql_error());
return $result;
}
//完成update ,delete, insert
public function execute_dml($sql)
{
$b = mysql_query($sql,$this->link);
if(!$b){
return 0;//失败
}else{
if(mysql_affected_rows($this->link)>0){
return 1;//表示成功
}else{
return 2;//表示没有行数影响
}
}
mysql_close($this->link);
}
}
<?php
header("Content-Type:text/html;charset=utf-8");
require_once "SqlTool.class.php";
//*************************dml********************************
/*$sql = "insert into user1(name,password,email,age) values('xiaoming',md5('123'),'xiao@qq.com',200)";
$obj = new SqlTool();
$res = $obj->execute_dml($sql);
if($res == 0){
echo "失败";
}else if($res == 1){
echo "成功";
}else if($res == 2){
echo "没有影响";
}*/
//************************dql********************
$sql = "select * from user1";
$obj = new SqlTool()();
$result = $obj->execute_dql($sql);
while($row = mysql_fetch_row($result)){
foreach ($row as $k=>$v) {
echo '---$v';
}
echo "<br/>";
}
mysql_free_result($result);
2. 在线词典
mainView.php
<html>
<head>
<title>在线词典</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<body>
<h1>查询英文</h1>
<form action="wordProcess.php" method="post">
请输入英文:<input type="text" name="enword"/>
<input type="hidden" value="search" name="type"/>
<input type="submit" value="查询"/>
</form>
</body>
</html>
wordProcess.php
<?php
// 接收英文单词
require_once 'SqlTool.php';
header("Content-type:text/html;charset=utf-8");
if(isset($_POST['enword'])){
$en_word = $_POST['enword'];
}else{
echo "输入为空";
echo "<a href='mainView.php'>返回重新查询</a>>";
}
//看看数据库中有没有这条记录
$sql = "select chword from words where enword='" . $en_word . "' limit 0,1";
//设计表
//查询,可以使用工具类
$sqlTool = new SqlTool();
$res = $sqlTool->execute_dql($sql);
if($row = mysql_fetch_array($res)){
echo $en_word . '对应的中文是' . $row['chword'];
}else{
echo '没有这个词条';
echo "<br/><a href='mainView.php'>重新返回查询</a>";
}
mysql_free_result($res);
工具类:
SqlTool.php
<?php
class SqlTool
{
private $link;
private $host = 'localhost';
private $user = 'root';
private $password = '123456';
private $db = "test";
public function __construct()
{
$this->link = mysql_connect($this->host,$this->user,$this->password);
if(!$this->link){
die("连接失败" . mysql_error());
}
mysql_select_db($this->db,$this->link);
mysql_query("set names utf8");
}
//完成select
public function execute_dql($sql)
{
$result = mysql_query($sql) or die(mysql_error());
return $result;
}
//完成update ,delete, insert
public function execute_dml($sql)
{
$b = mysql_query($sql,$this->link);
if(!$b){
return 0;//失败
}else{
if(mysql_affected_rows($this->link)>0){
return 1;//表示成功
}else{
return 2;//表示没有行数影响
}
}
mysql_close($this->link);
}
}