<?php header("content-type:text/html;charset=utf-8"); if($con = mysql_connect('localhost','root','root')) { echo "连接成功"; } else { echo "连接失败"; } //localhost:服务器 //root:用户名 //root:密码 ?>
1、连接成功,返回 MySQL标识符;
2、连接失败,返回false。
判断PHP是否已经安装mysql扩展:
<?php if(function_exists('mysql_connect')) { echo "mysql扩展已经安装"; } ?>
PHP中一个数据库可能有一个或者多个扩展,其中既有官方的,也有第三方提供的。像Mysql常用的扩展有原生的mysql库,也可以使用增强版的mysqli扩展,还可以使用PDO进行连接与操作。
不同的扩展提供基本相近的操作方法,不同的是可能具备一些新特性,以及操作性能可能会有所不同。
mysql扩展进行数据库连接的方法:
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password');
mysqli扩展:
$link = mysqli_connect('mysql_host', 'mysql_user', 'mysql_password');
PDO扩展:
$dsn = 'mysql:dbname=testdb;host=127.0.0.1'; $user = 'dbuser'; $password = 'dbpass'; $dbh = new PDO($dsn, $user, $password);
示例:
<?php $link = mysql_connect('127.0.0.1', 'code1', '') or die('数据库连接失败'); mysql_select_db('code1'); mysql_query("set names 'utf8'"); $result = mysql_query('select * from user limit 1'); $row = mysql_fetch_assoc($result); print_r($row);
1、设置字符集
mysql_query("set names 'utf8'");
2、选择数据库
mysql_select_db("db_name");
连接成功返回TRUE,连接失败返回false。
存在情况:(1)数据库不存在;(2)无权限操作数据库
$link = mysql_connect("localhost","root","root"); mysql_close($link);
mysql_query("insert into table (name) values('abc')");
返回值根据SQL语句不同而各有不同:
1、insert语句成功返回TRUE,失败返回FALSE
2、对于查询类的语句会返回一个资源句柄(resource),可以通过该资源获取查询结果集中的数据。
插入新数据到mysql中:
$sql = "insert into user(name, age, class) values('李四', 18, '高三一班')"; mysql_query($sql); //执行插入语句
通常数据都是存储在变量或者数组中,因此sql语句需要先进行字符串拼接得到。
$name = '李四'; $age = 18; $class = '高三一班'; $sql = "insert into user(name, age, class) values('$name', '$age', '$class')"; mysql_query($sql); //执行插入语句
echo mysql_error();
在mysql中,执行插入语句以后,可以得到自增的主键id,通过PHP的mysql_insert_id函数可以获取该id。
$uid = mysql_insert_id();
这个id的作用非常大,通常可以用来判断是否插入成功,或者作为关联ID进行其他的数据操作。
返回整型下标的数组,一次返回一行数据,然后指针下移
返回整型下标(索引数组)和关联下标数组,一次返回一行数据,然后指针下移;
mysql_fetch_array($result,""),第二个参数可取三个值:
1.MYSQL_ASSOC——关联数组;
2.MYSQL_NUM——数字数组;
3.MYSQL_BOTH——两者皆有(默认)
返回关联数组
输出对象
调取用:$obj->name
$query = mysql_query("select * from test"); $result = mysql_fetch_object($query); var_dump($result); echo $ressult->name; //输出名字
test数据库:
id(1,2,3) name(苹果,香蕉,西瓜)
$query = mysql_query("select * from test"); $result = mysql_fetch_row($query); var_dump($result);
返回查询到的资源的第一条数据:
array(2) { [0]=> string(1) "1" [1]=> string(6) "苹果" }
while循环输出所有结果:
while($result = mysql_fetch_row($query)) { var_dump($result); }
输出结果:
array(2) { [0]=> string(1) "1" [1]=> string(6) "苹果" } array(2) { [0]=> string(1) "2" [1]=> string(6) "香蕉" } array(2) { [0]=> string(1) "3" [1]=> string(6) "西瓜" }
一条一条输出:
$row1 = mysql_fetch_row($query); //第一条数据 var_dump($row1); $row1 = mysql_fetch_row($query); //第二条数据 var_dump($row1); $row1 = mysql_fetch_row($query); //第三条数据 var_dump($row1); $row1 = mysql_fetch_row($query); //bool(false) var_dump($row1); $row1 = mysql_fetch_row($query); //bool(false) var_dump($row1);
输出结果:
array(2) { [0]=> string(1) "1" [1]=> string(6) "苹果" } array(2) { [0]=> string(1) "2" [1]=> string(6) "香蕉" } array(2) { [0]=> string(1) "3" [1]=> string(6) "西瓜" } bool(false) bool(false)
只输出一个字段:
$query = mysql_query("select name from test"); while($result = mysql_fetch_row($query)) { var_dump($result); }
输出结果:
array(1) { [0]=> string(6) "苹果" } array(1) { [0]=> string(6) "香蕉" } array(1) { [0]=> string(6) "西瓜" }
输出结果为一个数字。
$query = mysql_query("select * from test"); mysql_num_rows($query);
用途:判断取出的结果是否有数据,如果有则输出数据
$query = mysql_query("select * from test"); if($query && mysql_num_rows($query) != 0) { //输出结果 while($row = mysql_fetch_row($query)) { echo $row[0]; } } else { echo "没有数据"; }
三个参数:结果集的地址、行号(0开始)、字段名或字段位置(0,1,2……)(可为空,默认为第一个字段)
$query = mysql_query("select * from test"); mysql_result($query,0,'name');
返回前一次受insert、update、delete影响的记录行数
参数:连接标识符
<?php $link = mysql_connect('127.0.0.1', 'code1', '') or die('数据库连接失败'); mysql_select_db('code1'); mysql_query("set names 'utf8'"); $result = mysql_query('delete from user limit 1'); echo "删除的数据条数为:".mysql_affected_rows($link);