日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php发送sql,php发送Sql语句遇到的坑

發布時間:2025/3/20 php 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php发送sql,php发送Sql语句遇到的坑 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

php發送Sql語句遇到的坑

標簽: php

先在這里貼一下代碼:

//連接數據庫

$link = mysqli_connect('127.0.0.1','root','') or die('連接失敗!');

//設置字符串編碼

mysqli_query($link,"set names utf8");

//選擇數據庫

//session_start();

mysqli_select_db($link,'user');

//獲取表單數據

//對密碼進行MD5加密

$username = $_POST['username'];

$password = md5($_POST['userword']);

//檢測用戶名及密碼是否正確,執行sql查詢

$check_query = "select * from user where userName = {$username}";

$result = mysqli_query($link,$check_query);

//獲取記錄數

//取得結果集中行的數目

$num = mysqli_num_rows($result);

echo $num;

// 用戶存在

if($num){

/*

mysql_fetch_array從結果集中取得一行作為關聯數組,或數字數組,或二者兼有

*/

$row=mysql_fetch_array($result);

//對密碼進行判斷

if($password===$row['userPassword']){

echo "登陸成功!";

//header() 函數向客戶端發送原始的 HTTP 報頭。

//header("location:index.php");

}else{

echo "密碼不正確";

//echo "返回登陸頁面";

}

}else{

echo "用戶不存在";

//echo "返回登陸頁面";

}

?>

作為一個php小白,寫了40行代碼,挖了不少坑,大家可以借助一下這段代碼檢驗一下自己的水平,哈哈哈哈哈。

下面講述的步驟,是我在逐漸解決的過程。

坑一: mysql_num_rows()

報的第一個錯誤是關于mysql_num_rows()的

mysql_num_rows() expects mysqli_result 1 to be resource,boolean given

這個報錯字面意思是這個函數的參數應該接受一個resource的參數,但實際運行時,傳進去的參數是一個布爾值。 作為一個學習的心態,還是應該先找一下關于這個函數的解釋:

用法:int mysql_num_rows ( resource $result )

mysql_num_rows() 返回結果集中行的數目。此命令僅對 SELECT 語句有效。要取得被 INSERT,UPDATE 或者 DELETE 查詢所影響到的行的數目,用 mysql_affected_rows()。

在我的代碼中,$result是查詢后的結果,我的代碼應該看起來沒有問題,而錯誤提示$result是一個布爾值,可能是我的查詢語句出現了問題。

坑二:發送sql語句

現在php菜鳥教程中找了其返回值的情況:

針對成功的 SELECT、SHOW、DESCRIBE 或 EXPLAIN 查詢,將返回一個 mysqli_result 對象。針對其他成功的查詢,將返回 TRUE。如果失敗,則返回 FALSE

看到這里,看到mysqli_result對象感覺看到了家人。覺得頓時有了頭緒。 關于$link: 我在mysqli_query()中傳入的參數$link其實是不對的,這個資源標識符是我登錄數據庫時候返回的,而不是選擇數據時候返回的。而數據庫才是我操作的對象,其中的邏輯千萬要搞明白。

坑三:sql語句

最后的問題就是出在了這里。

先說一下php里的變量解析:

在單引號字符串中的變量和特殊含義的字符將不會被替換。 用雙引號定義的 字符串 最重要的特征是變量會被解析

第一種情況:

$name = 'lan';

echo '我是$name';

這在情況下,變量會被當作字符串處理,會輸出

我是$name

$name = 'lan';

echo "我是$name";

在這種情況下,變量會被解析,輸出:

我是lan

詳情參見玩轉php變量解析 2. php中的{} 在我查找php拼接字符串的過程中,主要出現了兩種方法,一個就是直接使用雙引號進行變量解析,另外一種是使用.符號進行拼接。 雙引號出現了一種寫法:{$username} 讓我有一些困惑,在這里也說一下其作用:

(1). 表示{}里面的是一個變量 ,執行時按照變量來處理 (2). 在字符串中引用變量使用的特殊包括方式,這樣就可以不使用.運算符,從而減少代碼的輸入量了 (3). 防止變量名和后面的字符串連在一起

使用.拼接sql語句 這是我在mysql的phpMyAdmin中自動生成的查詢語句

SELECT * FROM `user` WHERE `userName` LIKE 'lan'

而這是我在運行的過程中輸出的拼接后的字符串:

SELECT * FROM `user` WHERE `userName` LIKE lan

仔細一下觀察一下可以看出輸出的語句中最后lan是沒有單引號的,這就是錯誤的根源了,可憐我一直沒有看到。

最后拼接成了這個樣子:

$check_query = "SELECT * FROM `user` WHERE `userName` LIKE"."'".$username."'";

坑四:md5

md5() 函數計算字符串的 MD5 散列。主要用于加密.

調試到后面,前面的都能正確運行,但就是一直輸出密碼不對,想到,也許從數據庫里讀取的數據,也要進行md5處理才能和進過md5處理的密碼比較,一試,果然對了。 其實可以在一開始注冊的時候,就把密碼md5加密儲存在數據中。

總結

是時候好好看看調試方法了

總結

以上是生活随笔為你收集整理的php发送sql,php发送Sql语句遇到的坑的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚欧成人在线 | 新中文字幕| 天堂成人在线视频 | 深夜福利麻豆 | 美女网站全黄 | 欧产日产国产精品 | 97在线免费观看 | av.www| 欧美色综合天天久久综合精品 | 五月婷婷七月丁香 | 欧美精品在线免费 | 中文字幕av日韩 | 在线观看不卡av | h在线免费观看 | 日本免费观看视频 | 国产乱强伦一区二区三区 | 欧美一级黄色网 | 91亚洲国产成人精品一区 | 在线观看黄色小视频 | 91大神一区二区 | av导航网| 高潮白浆女日韩av免费看 | 亚洲一级特黄 | 在哪里可以看黄色片 | 日本福利在线观看 | 成人黄色大片在线观看 | 欧美波霸影院 | 免费黄在线 | 中文无码精品一区二区三区 | 亚洲成年人免费观看 | 亚洲天堂最新 | 国产精品一区二区无线 | 中文字幕在线观看播放 | 亚洲午夜在线观看 | 黄色大网站 | 亚洲美女啪啪 | 色一情一乱一乱一区91av | 精品人妻伦一二三区久 | 黑人巨大精品欧美黑寡妇 | 在线观看精品一区 | 欧美一级黄| 国产高潮流白浆喷水视频 | 精产国品一区二区 | 欧美精品成人一区二区在线观看 | 伊人春色网站 | 国产欧美一区二 | 999精品在线视频 | 色网网站 | 欧美日韩午夜精品 | 亚洲人午夜射精精品日韩 | 生活片av| 乱人伦中文字幕 | 成人久久毛片 | 日本三级中文字幕在线观看 | 精品黄色一级片 | 欧美aa大片 | 简单av网| 国产在线网 | 色悠久 | 亚洲欧美精选 | 精品在线观看一区 | 日日舔夜夜操 | 大地资源影视在线播放观看高清视频 | 日本黄色大片免费 | 午夜xxx| 亚洲女人久久久 | 黄色av网站在线 | 日韩中文字幕在线观看视频 | 亚洲国产第一区 | 无码精品一区二区三区在线 | 清纯唯美第一页 | 久久精品欧美 | 91免费版在线看 | 国产老熟女一区二区三区 | 波多野吉衣视频在线观看 | 国产女人水真多18毛片18精品 | 中文字幕一区二区三区乱码不卡 | 日韩在线免费观看视频 | 99热这里只有精品首页 | 国产成人在线观看网站 | 午夜小视频在线 | 男人添女人荫蒂国产 | 精品中文字幕视频 | www.av在线播放| 黄瓜视频成人 | 88av.com | 亚洲精品国产欧美在线观看 | 六月色婷婷 | 亚洲精品无amm毛片 国内一区二区三区 | 亚洲看片 | 欲色网站| 91午夜在线观看 | 中国在线观看免费高清视频播放 | 新国产视频 | 亚洲www在线观看 | 内射后入在线观看一区 | 香蕉国产 | 日韩黄页网站 | 天天干夜夜想 |