PHP数据库函数的使用技巧
PHP是一门广泛应用于web开发、服务器端编程的语言,在我们的日常工作中,经常要和数据库打交道。在PHP中,我们可以通过各种数据库扩展(如mysql、mysqli)来访问数据库,执行增、删、改、查等操作。本文就来介绍一些PHP数据库函数的使用技巧,以便于大家在实际开发中更加高效、准确的操作数据库。
一、数据库连接
连接是使用数据库的第一步,常用的连接方式有原始方式和面向对象方式,下面我们分别给大家介绍:
1.原始方式连接数据库
使用原始方式连接数据库,可能会面临缺少异常处理、易出错等问题,但这种方式简单易用,是初学者和小公司经常使用的方式。
//建立数据库连接
$con = mysql_connect("localhost","root","123456");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
echo "Connected successfully";
mysql_close($con); //关闭数据库连接
2. 面向对象方式连接数据库
使用面向对象方式连接数据库,拥有更加灵活的应对手段,在面向对象的编程模式下,使用try..catch语句更为常见。
//建立数据库连接
$mysqli = new mysqli('localhost', 'username', 'password', 'databaseName');
if ($mysqli->connect_errno) {
echo "Connect failed" . $mysqli->connect_error;
exit();
}
echo "Connect success";
$mysqli->close(); //关闭数据库连接
注:以上两种方式都有对应的关闭连接方法,如mysql_close、$mysqli->close(),为了更好的防止资源浪费,建议不使用全局变量,使用局部变量来保存连接对象
二、增添、删除、修改、查询
1.增添数据
PHP中我们可以通过mysql_query函数完成向数据库中添加数据的操作,示例:
//在users表中添加一个用户(用户名为test,密码为123),创建时间为当前时间
$time = date('Y-m-d H:i:s', time());
$sql = "INSERT INTO users(username,password,created_at)VALUES('test','123','$time')";
mysql_query($sql);
对于面向对象方式,mysqli_query会异步执行,它的返回值是一个类mysqli_result的实例对象,具体代码如下:
$sql = "INSERT INTO users(username,password,created_at)VALUES('test','123', NOW())";
if ($mysqli->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $mysqli->error;
}
2.删除数据
删除数据也是非常常见的操作之一,下面我们分别介绍其使用的函数。
//从users表中删除名为test的用户信息
$sql = "DELETE FROM users WHERE username='test'";
mysql_query($sql);
对于面向对象方式,删除数据是通过mysqli_prepare、bind_param、execute、affected_rows等函数来实现的,具体代码如下:
//从users表中删除名为test的用户信息
$stmt = $mysqli->prepare("DELETE FROM users WHERE username=?");
$stmt->bind_param("s", $name);
$name = "test";
$stmt->execute();
echo "Deleted ".$stmt->affected_rows." rows";
3.修改数据
修改数据也是非常重要的数据库操作之一,下面我们分别介绍其使用的函数。
//修改users表中名为test的用户密码为新密码234567
$sql = "UPDATE users SET password='234567' WHERE username='test'";
mysql_query($sql);
对于面向对象方式,修改数据是通过mysqli_prepare、bind_param、execute、affected_rows等函数来实现的,具体代码如下:
//修改users表中名为test的用户密码为新密码234567
$stmt = $mysqli->prepare("UPDATE users SET password=? WHERE username=?");
$stmt->bind_param("ss", $password, $name);
$name = "test";
$password="234567";
$stmt->execute();
echo "Updated ".$stmt->affected_rows." rows";
4.查询数据
查询数据也是非常重要的数据库操作之一,下面我们分别介绍其使用的函数。
//查询users表中所有用户的用户名和密码
$sql = "SELECT username, password FROM users";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
echo $row['username'] . " " . $row['password'];
echo "<br />";
}
对于面向对象方式,查询数据是通过mysqli_query、fetch_assoc等函数来实现的,具体代码如下:
//查询users表中所有用户的用户名和密码
$sql = "SELECT username, password FROM users";
$result = $mysqli->query($sql);
while($row = $result->fetch_assoc()) {
printf ("%s (%s)
", $row["username"], $row["password"]);
}
$result->free();
三、常见的错误
1.连接失败
连接失败通常是由于数据库名、用户名、密码填写错误或者没有赋予mysql用户相应的权限,解决方式是查看报错信息,进行相应的调整和更正。
2.语法错误
语法错误通常是由于SQL语句书写格式不规范或者意义不明确,容易导致SQL注入等问题,解决方式是查看报错信息,进行相应的调整和更正。
3.PHP版本问题
PHP版本不兼容通常是由于使用PHP7等新版本语法导致,解决方式是进行相应的语法转换或者PHP版本安装切换。
四、总结
本文介绍了PHP数据库函数连接、增添、删除、修改和查询,以及常见错误的解决方式,希望对大家在PHP数据库操作上有所帮助。在实际开发中,应尽量使用mysqli函数,建议使用面向对象方式编程,具有代码清晰易懂、防注入、安全性高等特点。同时,也应注意处理异常,防止资源浪费。
