PHP和MySQL数据库的接口
安装MySQL扩展
1、下载MySQL扩展库:访问PECL官网(https://pecl.php.net/)下载对应版本的MySQL扩展库。
2、解压下载的文件,将php_mysql.dll
文件复制到PHP安装目录下的ext
文件夹中。
3、修改php.ini文件,添加以下内容:
extension=php_mysql.dll
4、重启PHP服务。
连接MySQL数据库
1、使用mysqli扩展连接数据库:
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检测连接 if ($conn>connect_error) { die("连接失败: " . $conn>connect_error); } echo "连接成功"; ?>
2、使用PDO扩展连接数据库:
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // 设置PDO错误模式为异常 $conn>setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "连接成功"; } catch(PDOException $e) { echo "连接失败: " . $e>getMessage(); } ?>
执行SQL语句
1、使用mysqli扩展执行SQL语句:
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接 if ($conn>connect_error) { die("连接失败: " . $conn>connect_error); } $sql = "SELECT id, firstname, lastname FROM MyGuests"; $result = $conn>query($sql); if ($result>num_rows > 0) { // 输出每行数据 while($row = $result>fetch_assoc()) { echo "id: " . $row["id"]. " Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; } } else { echo "0 结果"; } $conn>close(); ?>
2、使用PDO扩展执行SQL语句:
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // 设置PDO错误模式为异常 $conn>setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $conn>prepare("SELECT id, firstname, lastname FROM MyGuests"); $stmt>execute(); // 输出每行数据 while($row = $stmt>fetch(PDO::FETCH_ASSOC)) { echo "id: " . $row["id"]. " Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; } } catch(PDOException $e) { echo "连接失败: " . $e>getMessage(); } $conn = null; //关闭连接资源,释放内存资源,避免内存泄漏,建议使用trycatch结构来处理异常,在finally块中关闭资源,关闭资源时,先关闭依赖的资源,再关闭当前资源,先关闭游标,再关闭数据库连接,释放大对象等占用大量内存的对象,如果使用了事务,则在提交或回滚事务后关闭数据库连接,如果在finally块中关闭了资源,则不需要显式地调用PHP的unset()函数来释放变量所占用的内存,因为PHP会在脚本结束时自动回收这些内存,如果使用了静态变量或者全局变量,则需要显式地调用unset()函数来释放它们所占用的内存,否则,这些变量将一直占用内存,直到脚本结束为止。
下面是一个简单的介绍,展示了PHP和MySQL数据库接口的一些常用操作:
操作类型 | PHP代码示例 |
连接到数据库 | $mysqli = new mysqli("host", "username", "password", "database"); |
检查连接错误 | if ($mysqli>connect_error) { die("连接失败: " . $mysqli>connect_error); } |
执行SQL查询 | $result = $mysqli>query("SELECT * FROM table_name"); |
遍历查询结果 | while ($row = $result>fetch_assoc()) { echo $row['column']; } |
插入数据 | $mysqli>query("INSERT INTO table_name (column1, column2) VALUES ('value1', 'value2')"); |
更新数据 | $mysqli>query("UPDATE table_name SET column1='value1' WHERE id=1"); |
删除数据 | $mysqli>query("DELETE FROM table_name WHERE id=1"); |
获取受影响行数 | $affected_rows = $mysqli>affected_rows; |
获取最后插入的ID | $last_id = $mysqli>insert_id; |
错误处理 | if ($mysqli>errno) { die("查询失败: " . $mysqli>error); } |
关闭连接 | $mysqli>close(); |
请注意,上面的示例使用了mysqli
扩展,这是PHP中用于与MySQL数据库交互的一种方式,还有其他方式,比如PDO(PHP Data Objects),也是一种流行的数据库抽象层。
在使用这些PHP代码示例时,需要确保替换示例中的占位符,如"host"
,"username"
,"password"
,"database"
,table_name
,column1
,column2
等,以适应你的具体数据库配置和操作需求。
在实际开发中,强烈建议使用预处理语句来避免SQL注入攻击,尤其是在处理来自用户输入的数据时,上面的示例没有包含预处理语句,这是因为介绍的目的是为了简洁展示基本的PHP和MySQL接口操作。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/691686.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复