php基礎——關於SELECT語句的返回結果

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

相關文章
相關標籤/搜索