深入理解php函数mysqli_query
随着Web应用的不断发展,PHP语言在Web应用开发中的使用越来越多。在PHP中,mysqli_query函数是一个非常常用的函数。主要用于执行SQL语句。那么我们在使用mysqli_query函数时需要注意哪些问题呢?这就是本文将要详细阐述的问题。
1。函数mysqli_query
的参数mysqli_query 函数的语法格式如下:
mysqli_query(connection,query,resultmode);
其中,有三个参数:
connection:需要指定MySQL连接句柄,使用mysqli_connect()或mysqli_init()后返回的对象。
query:必需指定要执行的SQL语句,可能包括插入、更新、删除、查询等操作。
结果模式:可选,默认以关联数组 (MYSQLI_ASSOC)、数值数组 (MYSQLI_NUM) 或两者 (MYSQLI_BOTH) 形式返回结果集。要仅返回行统计信息或受影响的行数,请指定 MYSQLI_USE_RESULT 或 MYSQLI_STORE_RESULT。
2。函数mysqli_query的返回值
mysqli_query函数在执行查询时成功返回mysqli_result对象。如果插入、删除和更新操作成功,则返回 true。如果执行失败则返回 false。同时,mysqli_query还可以使用mysqli_affected_rows和mysqli_insert_id函数来获取受影响的行数并自动递增插入。 ID。
1。返回对象 mysqli_result
$conn = mysqli_connect("localhost", "user", "password", "example");
$result = mysqli_query($conn,"SELECT * FROM user where sex=1");
返回的$result是一个mysqli_result对象。
2。还原真相
$conn = mysqli_connect("localhost", "user", "password", "example");
$sql = "INSERT INTO user (name,age,sex)VALUES('tony',25,1)";
$result=mysqli_query($conn,$sql);
if($result){
echo "插入成功!";
}else{
echo "插入失败!";
}
执行成功则返回 true,失败则返回 false。
3。返回错误
$conn = mysqli_connect("localhost", "user", "password", "example");
$sql = "INSERT INTO user (name,age,sex,created_at)VALUES('tony',25,1)";
$result=mysqli_query($conn,$sql);
if($result){
echo "插入成功!";
}else{
echo "插入失败!";
}
当执行INSERT INTO user(name,age,gender,created_at)VALUES('tony',25,1)等SQL语句出现问题时,created_at字段缺失,返回false。
3。 mysqli_query 的安全性
当我们使用mysqli_query函数时,需要考虑安全问题。为了防止SQL注入,我们需要对输入参数进行过滤和检查。
1。过滤器输入参数
$name = mysqli_real_escape_string($conn,$_POST['name']);
$age = intval($_POST['age']);
$sex = intval($_POST['sex']);
$sql = "INSERT INTO user (name,age,sex)VALUES('$name','$age','$sex')";
$result=mysqli_query($conn,$sql);
在上面的例子中,我们使用了mysqli_real_escape_string()函数来过滤$name,以避免SQL注入的风险。
2。检查输入
$age = intval($_POST['age']);
$sex = intval($_POST['sex']);
if($age 120){
echo "年龄不合法!";
exit;
}
if($sex != 0 && $sex != 1){
echo "性别不合法!";
exit;
}
$name = mysqli_real_escape_string($conn,$_POST['name']);
$sql = "INSERT INTO user (name,age,sex)VALUES('$name','$age','$sex')";
$result=mysqli_query($conn,$sql);
在上面的例子中,我们使用intval函数将$age和$gender转换为整数,并进行合法性检查以避免非法输入。这样的话,就算有人想通过特殊字符来攻击,也是不行的。
4。使用mysqli_query时的注意事项
1。 mysqli_query函数不支持批量查询
如果需要批量执行SQL语句,可以使用mysqli_multi_query函数来实现。同时要注意每次查询结果的处理。
2。 mysqli_query函数必须与mysqli_fetch_
函数系列一起使用执行mysqli_query函数后,必须使用一系列mysqli_fetch_函数来检索查询结果。一般来说,使用 mysqli_fetch_array 或 mysqli_fetch_assoc 函数。
总结
本文详细讲解了mysqli_query函数的参数、返回值、安全性以及注意事项。在使用mysqli_query函数时,我们必须验证参数的有效性并过滤注入攻击。同时要注意mysqli_query函数的使用场景。只有学习了mysqli_query函数的使用规则,才能更好的应对Web开发中的各种数据库操作。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网