PHP使用原生MySQL函数查询数据库并保存至数组
在PHP开发中,有时需要将MySQL数据库的查询结果直接保存或遍历处理为数组。本文将展示如何利用经典的mysql_*系列函数(如mysql_fetch_assoc)实现从建立连接到获取数据的全过程,适用于维护旧系统或理解底层逻辑的场景。
核心原理与准备
该方法依赖于PHP的MySQL扩展。主要步骤包括:
1. 建立数据库连接。
2. 选择目标数据库。
3. 执行SQL查询。
4. 提取结果为关联数组。
mysql_fetch_assoc 是此处的关键函数,它从结果集中取得一行作为关联数组,其中字段名作为键名。每次调用指针会自动移向下一行。
操作步骤
第1步:配置连接参数并建立连接
首先定义数据库的用户名、密码和主机地址,然后尝试连接。
<?php
$UserName = 'abc';
$Password = '1234';
// 注意:实际环境中请替换为真实的凭据
$DbHandle = mysql_connect('localhost', $UserName, $Password);
if (!$DbHandle) {
die('No database connection could be established.');
}
第2步:选择目标数据库
连接成功后,需指定要操作的数据库名称。此处以
$DBName = 'w3db';
if (!mysql_select_db($DBName, $DbHandle)) {
die('Database could not be selected.');
}
第3步:执行查询并获取结果数组
编写SQL语句,例如查询mysql_query执行查询,并返回结果资源。随后通过while循环配合mysql_fetch_assoc逐一获取数据存入变量或直接处理。
$Query = "SELECT ISBN, Title, Author FROM articles";
$articles = mysql_query($Query, $DbHandle);
// 初始化数组以便完整保存所有结果
$resultArray = array();
while ($Row = mysql_fetch_assoc($articles)) {
// 这里可以将$Row追加到$resultArray中,或直接处理
echo "ISBN = " . $Row['ISBN'] . "
\n";
echo "Title = " . $Row['Title'] . "
\n";
echo "Author = " . $Row['Author'] . "
\n";
// 如果需要保存到数组供后续使用:
// $resultArray[] = $Row;
}
完成判断与注意事项
当mysql_fetch_assoc返回false时,表示结果集已遍历完毕。此时所有可读取的数据均已进入程序控制流(无论是直接输出还是存入数组)。
重要提示:上述代码使用的是已废弃的mysql_*函数。在现代PHP版本(7.0+)中,这些函数已被移除。生产环境强烈建议使用mysqli或PDO扩展,以支持预处理语句(防止SQL注入)和新特性。
简要总结
通过使用mysql_connect建立链接、mysql_select_db选中库、mysql_query执行SQL,并利用mysql_fetch_assoc在循环中将每一行转化为关联数组,即可实现“PHP查询MySQL数据库并将结果保存到数组”的需求。虽然这是传统做法,但理解其数据流向有助于掌握更安全的现代数据库操作接口。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













