PHP怎么实现MySQL数据库连接和查询操作
说到用PHP来操作MySQL数据库,大家肯定首先关心怎么连接数据库吧?其实这一步超级简单,给你整明白了就好!咱们先简单说下连接的关键代码,帮你快速上手:
- 设置连接参数,像主机地址、用户名、密码等,通常是这样的:
$host = "localhost";
$user = "root";
$pwd = "";
- 调用连接函数:
$conn = mysql_connect($host, $user, $pwd);
if (!$conn) {
die("连接数据库失败,拜拜!");
}
- 选中你要操作的数据库:
mysql_select_db("数据库名", $conn);
- 如果想让中文显示正常,别忘了设置编码:
mysql_query("set names 'GBK'");
- 之后就可以用
mysql_query去写你需要的查询语句啦,查询结果也能用mysql_fetch_array等函数来处理,棒棒哒。
小Tips:本来PHP官方更推荐mysqli或PDO,但如果你刚入门,这套传统的mysql函数还是蛮好理解的。

PHP如何给MySQL查询结果做自动分页和批量数据操作
分页功能很实用对吧?比如你有1000条数据,想每页显示10条,用户点“下一页”马上跳转,体验很流畅!来,教你怎么简单实现:
- 先接收当前页面的页码参数:
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
这里虽然简单,但关键在于,用户如果没传page,默认就是第1页,太贴心了。
- 设定每页显示条数:
$num = 10;
- 计算查询的起始位置:
$start = ($page - 1) * $num;
- 写查询语句限制返回数据条数:
$sql = "SELECT * FROM 表名 LIMIT $start, $num";
- 执行查询输出数据列表,乖乖,分页就是这么方便!
说到批量操作,PHP里最顺手的就是foreach循环,假如你批量插入数据,可以这么写:
$data = [/*数据数组*/];
foreach ($data as $item) {
$sql = "INSERT INTO 表名 (字段1, 字段2) VALUES ('{$item['value1']}', '{$item['value2']}')";
mysql_query($sql);
}
这就是经典的插入多条数据办法,没啥难度。
另外,建议建立一个公共配置文件保存连接参数,避免代码散落比如:
class DB {
public $db_host = "localhost";
public $db_user = "root";
public $db_pwd = "";
public $db_name = "test";
public $conn;
function __construct() {
$this->conn = mysql_connect($this->db_host, $this->db_user, $this->db_pwd);
if (!$this->conn) {
die("数据库连接失败,别慌!");
}
mysql_select_db($this->db_name, $this->conn);
mysql_query("set names 'utf8'");
}
}
这样就能集中管理数据库信息,代码更整洁,维护起来倍儿爽。

相关问题解答
-
PHP连接MySQL数据库为什么会失败呢?
哎呀,这个超级常见了。一般是用户名密码错啦,主机地址写错啦,或者数据库没启动。还有可能PHP扩展没开,或者语法写错。你看看报错信息,多留心点,确认数据库是活着的,账号密码没输错,就能快速解决啦,别急别慌! -
我用PHP写了分页为啥数据不对劲或者不动了?
嘻嘻,这个大多是因为分页页码或者偏移量计算错了。你确定$page变量传对没?还有LIMIT的起始值是从0开始哒,别输成1开头了。还有注意别忘了每页显示条数,弄混就乱套。再跑点var_dump()调试很管用,手动确认数据是不是对的~ -
为什么用mysql_connect而不是mysqli或者PDO?哪个更好呢?
嗯,这问题问得好!其实mysql_connect是老旧函数了,从PHP7起它不支持了哦。用mysqli或者PDO更现代安全,支持预处理语句呢,防止SQL注入更靠谱。初学者可能觉得mysql_connect简单,但建议大家逐步换用mysqli或PDO,将来更牛掰! -
怎样用PHP循环批量插入数据更高效?
嘿嘿,批量插入其实有不少门道,单条插入虽然简单,但数据量大时很慢。你可以用单条SQL插入多条数据,类似:INSERT INTO table (col1) VALUES(val1),(val2),(val3)。另外,开启事务BEGIN和COMMIT,能大大提升性能。循环里连插爽快,但效率不一定最佳,多试试!
发表评论