判断是否开启了MySQL扩展
要使用MySQL扩展,先要判断是否开启了MySQL扩展。
1 <?php 2 header("Content-Type: text/html; CHARSET=utf8"); 3 4 // function_exists — 如果给定的函数已经被定义就返回 TRUE 5 // https://www.php.net/manual/zh/function.function-exists.php 6 if (!function_exists("mysql_connect")) { 7 exit('MySQL 扩展未开启'); 8 }
读取配置文件
读取连接MySQL需要的信息,host、username、password等
1 // parse_ini_file — 解析一个配置文件 2 // https://www.php.net/manual/zh/function.parse-ini-file.php 3 $mysqlIni = parse_ini_file("mysql.ini"); 4 $host = $mysqlIni['host']; 5 $port = $mysqlIni['port']; 6 $username = $mysqlIni['username']; 7 $password = $mysqlIni['password']; 8 $dbname = $mysqlIni['dbname'];
连接MySQL
使用mysql_connect连接MySQL
1 // mysql_connect — 打开一个到 MySQL 服务器的连接 2 // https://www.php.net/manual/zh/function.mysql-connect.php 3 $link = @mysql_connect("{$host}:{$port}", $username, $password); 4 5 // 判断有没有连接成功 6 if (!$link) { 7 echo '数据库连接失败<br>'; 8 // mysql_errno — 返回上一个 MySQL 操作中的错误信息的数字编码 9 // https://www.php.net/manual/zh/function.mysql-errno.php 10 echo '错误编号: ', mysql_errno(), '<br>'; 11 // mysql_error — 返回上一个 MySQL 操作产生的文本错误信息 12 // https://www.php.net/manual/zh/function.mysql-error.php 13 echo '错误信息: ', mysql_error(); 14 exit(); 15 }
选择数据库(database)
选择要操作的表所在的数据库
1 // mysql_select_db — 选择 MySQL 数据库 2 // https://www.php.net/manual/zh/function.mysql-select-db.php 3 $db_selected = mysql_select_db($dbname, $link); 4 if (!$db_selected) { 5 echo '选择数据库失败<br>'; 6 echo '错误编号: ', mysql_errno(), '<br>'; 7 echo '错误信息: ', mysql_error(); 8 exit(); 9 }
设置字符集
设置字符集为utf8,避免中文出现乱码
1 mysql_query("set names utf8");
发送MySQL查询
发送MySQL查询,如果查询成功,在处理完结果集后要释放结果集。这里先把释放结果集写上,处理结果集写在后面
1 // 定义查询语句 2 $query = "select id,name,height,gender,date_of_birth from starinfo limit 0,5"; 3 4 // mysql_query — 发送一条 MySQL 查询 5 // https://www.php.net/manual/zh/function.mysql-query.php 6 $result = mysql_query($query, $link); 7 if (!$result) { 8 echo '查询失败<br>'; 9 echo '错误编号: ', mysql_errno(); 10 echo '错误信息: ',mysql_error(); 11 exit(); 12 } 13 14 // 在这里对结果集进行处理 15 // 在这里对结果集进行处理 16 // 在这里对结果集进行处理 17 18 // mysql_free_result — 释放结果内存 19 // https://www.php.net/manual/zh/function.mysql-free-result.php 20 mysql_free_result($result); 21 22 // mysql_close — 关闭 MySQL 连接 23 // https://www.php.net/manual/zh/function.mysql-close.php 24 mysql_close($link);
处理结果集
这里以取出关联数组用while循环加foreach循环输出一个表格为例
1 echo "<table border=\"1px\">"; 2 3 // 取字段名 4 echo "<tr>"; 5 // mysql_fetch_field — 从结果集中取得列信息并作为对象返回 6 // https://www.php.net/manual/zh/function.mysql-fetch-field.php 7 while ($field = mysql_fetch_field($result)) { 8 echo "<th>{$field -> name}</th>"; 9 } 10 echo "</tr>"; 11 12 // 取记录信息 13 // mysql_fetch_array — 从结果集中取得一行作为关联数组,或数字数组,或二者兼有 14 // https://www.php.net/manual/zh/function.mysql-fetch-array.php 15 while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 16 echo "<tr>"; 17 foreach ($row as $key => $value) { 18 echo "<td>{$value}</td>"; 19 } 20 echo "</tr>"; 21 } 22 23 echo "</table>";
最终输出结果
id | name | height | gender | date_of_birth |
---|---|---|---|---|
1 | 胡歌 | 185 | male | 1982-09-20 |
2 | 杨幂 | 167 | female | 1986-09-12 |
3 | 赵薇 | 166 | female | 1976-03-12 |
4 | 赵丽颖 | 165 | female | 1987-10-16 |
5 | 苏有朋 | 173 | male | 1973-09-11 |