php数据库常用代码有哪些-新手必看实用技巧分享

教程大全 2026-03-02 10:40:19 浏览

PHP数据库连接基础

PHP与数据库交互的核心是建立连接,常用的数据库扩展包括MySQLi和PDO,MySQLi专为MySQL设计,支持面向过程和面向对象两种方式;PDO则支持多种数据库,具有更好的跨平台性,以MySQLi面向对象为例,连接代码如下:

$host = "localhost";$user = "root";$pass = "";$db = "test_db";$conn = new mysqli($host, $user, $pass, $db);if ($conn->connect_error) {die("连接失败: " . $conn->connect_error);}

连接时需注意错误处理,避免直接暴露敏感信息,PDO连接方式类似,但需指定数据库类型(如 mysql:host=localhost;dbname=test_db )。

执行SQL查询语句

查询数据是数据库操作的基础,使用MySQLi的方法执行SELECT语句,并通过 fetch_assoc() 获取结果:

$sql = "SELECT id, name FROM users";$result = $conn->query($sql);if ($result->num_rows > 0) {while($row = $result->fetch_assoc()) {echo "ID: " . $row["id"]. " Name: " . $row["name"]. "
";}} else {echo "0 结果";}

对于PDO,需使用和预处理语句,防止SQL注入:

$stmt = $conn->prepare("SELECT id, name FROM users WHERE id = :id");$stmt->binDParam(':id', $id);$stmt->execute();$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

插入、更新与删除数据

插入数据时,使用 INSERT INTO 语句,MySQLi示例:

$sql = "INSERT INTO users (name, email) VALUES ('John', 'john@example.com')";if ($conn->query($sql) === TRUE) {echo "新记录插入成功";} else {echo "Error: " . $sql . "
" . $conn->error;}

更新数据通过实现,删除数据使用,务必添加WHERE条件,避免误操作,PDO推荐使用预处理语句处理动态数据:

$stmt = $conn->prepare("UPDATE users SET email = :email WHERE id = :id");$stmt->execute(['email' => 'new@example.com', 'id' => 1]);

事务处理与错误管理

事务确保数据一致性,MySQLi中通过 begin_transaction() 、和 rollback() 实现:

$conn->begin_transaction();try {$conn->query("INSERT INTO accounts (name, balance) VALUES ('Alice', 1000)");$conn->query("INSERT INTO transactions (user_id, amount) VALUES (1, -100)");$conn->commit();} catch (Exception $e) {$conn->rollback();echo "事务失败: " . $e->getMessage();}

PDO需设置 PDO::ATTR_ERRMODE PDO::ERRMODE_EXCEPTION 以启用异常处理。

数据库连接关闭与优化

操作完成后关闭连接: $conn->close() (MySQLi)或 php数据库常用代码有哪些 $conn = null (PDO),优化方面,建议使用连接池(如PDO的持久化连接)、限制查询结果数量(子句)以及定期索引优化。

相关问答FAQs

Q1: 如何防止SQL注入攻击? A1: 使用预处理语句(PDO或MySQLi的方法)过滤用户输入,避免直接拼接SQL字符串。 $stmt->bindParam(':id', $id) 确保变量被安全转义。

Q2: 何时使用MySQLi,何时选择PDO? A2: 若项目仅使用MySQL,MySQLi性能更优;若需支持多种数据库(如PostgreSQL、SQLite),PDO是更好的选择,因其提供统一的API接口。


PHP加密代码怎么写!

code($txt,$key){ $txt=base64_encode($txt);//先将txt进行base64编码转换 $tmp=;//用来存贮通过key加密后的值 for($i=0;$i$i


;for($j=0;$j;// echo z=.$z.
; $z=$z ^ $key[$j];}$tmp.=$z;//echo
; } return $tmp;}function base_key_decode($txt,$key){ //echo txt=.$txt.

; $m=strlen($key)-1;//算出key的长度 for($i=0;$i$i
;for($j=$m;$j>=0;$j--){//将txt的第i个字符与key的每一个字符进行异或运算,顺序变为key的最后一位字符开始 //echo j=.$j.
; $z=$z ^ $key[$j]; //echo z=.$z;}$tmp.=$z; } $tmp=base64_decode($tmp); return $tmp;}$txt=123test;echo $txt;//输出原始串echo
;echo base_key_encode($txt,key);//通过key加密后的串echo
;echo base_key_decode(base_key_encode($txt,key),key);//解密后的串?> 有问题可以网络HI我觉得好的话,给加点分吧,嘻嘻..

php搜索查询数据库数据

<?php// 获取表单提交值$student_id = intval(trim($_POST[student_id]));// 页面表单 可以放单独的html文件中,如果放单独的html页面中 form 的action的地址要改成下面的PHP文件名echo <form action= method=post> <input type=text value={$student_id}/> <input type=submit value=查询/> </form>;// 当有数据提交时if ($student_id){ $con= mysql_connect(localhost,root,111) or die(连接错误); mysql_select_db(examination,$con); // 查询 $sql = SELECT * FROM tablename WHERE student_id = $student_id ; $res=mysql_query($sql); $row=mysql_fetch_array($res); // 输出 echo 学号:.$row[student_id].<br>姓名:.$row[name].<br>性别:.$row[gender].<br>分数:.$row[score];}?>

怎样深入学习php,成为php高手?

课程:MySQL数据库的创建、修改及删除;数据表的创建、修改及删除;无限分类的数据表设计;记录的插入、更新、删除及查找;外键与连接;索引;存储过程,触发器,游标;事务处理;数据库引擎详解;数据库集群,数据库读写分离、类与对象,类的定义;属性与方法;$this关键字、 self关键字;继承,多态;魔术方法;抽象类与接口;设计模式;PDO类;JpGraph图表,FusionCharts图表;PHP高级应用(Smarty模板、PHP框架技术)等。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐