本人php小白一枚。最近在学习php的相关知识,经常须要对INSERT、SELECT
等sql语句的返回结果进行判断。这给我形成了不少的困扰,在进行了各类尝试以后,将个人总结整理在此。
1.INSERT语句php
$sql = "INSERT INTO tableName VALUES(NULL,...)"; $result = mysqli_query($conn,$sql); echo $result ? '1' : '-1';
使用INSERT语句向数据库中插入数据,此时$result
的值为false
或者true
,所以能够直接做为判断条件。
2.SELECT语句前端
$sql = "SELECT * FROM tableName WHERE ..."; $result = mysqli_query($conn,$sql);
SELECT查询语句返回的结果$result是一个对象,不能直接做为判断条件,此时须要抓取$result中的数据才能作进一步的判断。mysql
举个栗子,假设此时有这样一个需求,“在数据库中查找用户输入的用户名和密码是否正确”,数据库中不一样的用户名仅对应一条记录。此时有两种方式,一种是返回查找到的记录,另外一种是返回查找到的记录个数。
方法1:SELECT * FROM tableName(查找符合条件的记录)
关键语句sql
$sql = "SELECT * FROM t_login WHERE name='$name' AND pwd='$pwd'"; $result = mysqli_query($conn,$sql); $row = mysqli_fetch_row($result);//若查找到$row返回索引数组;若未查到,$row为NULL。
此处也可用$row =mysqli_fetch_assoc($result)
语句。若找到,返回一个关联数组;若为找到,返回也是NULL。此处不宜用$row =mysqli_fetch_all($result,MYSQLI_ASSOC);
该语句不论找到与否,返回的都是一个数组,不能做为判断条件。
方法1完整代码以下:数据库
<?php @$name = $_REQUEST['name'] or die('name is request'); @$pwd = $_REQUEST['pwd'] or die('password is request'); $conn = mysqli_connect('127.0.0.1','root','','databaseName'); $sql = 'set names utf8'; mysqli_query($conn,$sql); $sql = "SELECT * FROM t_user WHERE uname='$name' AND upwd='$pwd'"; $result = mysqli_query($conn,$sql); $row = mysqli_fetch_assoc($result);//若查找到$row返回索引数组,若未查到,$row为NULL if($row){ echo "success"; }else{ echo 'error'; } ?>
方法2:SELECT count(id)* FROM tableName(查找符合条件的记录个数)数组
$sql = "SELECT count(id) FROM t_login WHERE uname='$name' AND upwd='$pwd'"; $result = mysqli_query($conn,$sql); $row = mysqli_fetch_row($result);
若找到,此时返回的结果为array(1) { [0]=> string(1) "1" }
,表示返回的是一个长度为1的数组,其值为长度为1的字符串,即$row[0]==1;
若未找到符合条件的记录,这个值为0。
若采用$row = mysqli_fetch_row($result);
语句来抓取数据,若找到符合条件的记录,返回的结果为array(1) { ["count(uid)"]=> string(1) "1" }
,即$row['count(uid)']=1
。
方法2完整代码以下:学习
<?php @$name = $_REQUEST['name'] or die('name is request'); @$pwd = $_REQUEST['pwd'] or die('password is request'); $conn = mysqli_connect('127.0.0.1','root','','databaseName'); $sql = 'set names utf8'; mysqli_query($conn,$sql); $sql = "SELECT count(id) FROM t_login WHERE uname='$name' AND upwd='$pwd'"; $result = mysqli_query($conn,$sql); $row = mysqli_fetch_row($result); if($row[0]!=0){ echo "success"; }else{ echo 'error'; } ?>
By——初涉前端的小叶子。fetch