本人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