搜尋
首頁後端開發php教程PHP 和 MySQL 基礎教學(四)_PHP教程

MySQL 中的SQL

  對於MySQL ,第一件你必須牢記的是它的每一行命令都是用分號(;) 作為結束的,但…沒有完全絕對的事,在這裡也是一樣。

   前面我曾經講到,當一行MySQL 被插入在PHP 程式碼中時,最好把後面的分號省略掉,例如:

mysql_query ("INSERT INTO tablename (first_name, last_name)

VALUES ('$first_name', '$last_name')

");

   這是因為PHP 也是以分號作為一行的結束的,額外的,額外的分號有時會讓PHP 的語法分析器搞不明白,所以還是省略掉的好。在這種情況下,雖然省略了分號,但是 PHP 在執行 MySQL 指令時會自動的幫你加的。

   另外還有一個不要加分號的情況。當你想把要欄位的豎者排列顯示下來,而不是像通常的那樣橫著排列時,你可以用G 來結束一行SQL 語句,這時就用不上分號了,例如:

SELECT * FROM PENPALS

WHERE USER_ID = 1G
TEXT、DATE、和SET 資料型別
作者: 揚眉編譯本文點選次數:114
 、有定義一個資料型別。這有大約 25 種選擇,大部分都是直接明了的,就不多費口舌了。但有幾個有必要提一下。

TEXT 不是一種資料型,雖然可能有些書上是這麼說的。它實際上應該是“ LONG VARCHAR ”或“ MEDIUMTEXT ”。

DATE 資料型別的格式是 YYYY-MM-DD ,例如: 1999-12-08 。你可以很容易的用date 函數來得到這種格式的當前系統時間:

date("Y-m-d")

  並且,在DATA 資料型別之間可以作減法,得到相差的時間天數:

$age = ($current_date - $birthdate);

  集合SET 是一個有用的資料類型,它和枚舉ENUM 有點相似,只不過是SET 能夠保存多個值而ENUM 只能保存一個值而已。而且, SET 類型最多只能夠有 64 個預定的值,而 ENUM 類型卻能夠處理最多 65,535 個預先定義的值。而如果需要有大於 64 個值的集合,該怎麼辦呢?這時就需要定義多個集合來一起解決這個問題了。

通配符

   SQL 的同配符有兩種:「 * 」和「 % 」。分別用在不同的情況。例如:如果你想看到資料庫的所有內容,可以像這樣來查詢:

SELECT * FROM dbname

WHERE USER_ID LIKE '%';

 兒個通配符都被用上了。他們表示相同的意思 ?? 都是用來匹配任何的字串,但是他們用在不同的上下文中。 “ * ”用來匹配字段名,而“ % ”用來匹配字段值。另外一個不容易引起注意的地方是「 % 」通配符需要和 LIKE 關鍵字一起使用。

還有一個通配符,就是下劃線“ _ ”,它代表的意思和上面不同,是用來匹配任何單一的字符的。
NOT NULL 和空記錄
作 者 : 揚眉 編譯 本文點擊次數:114

  如果用戶在沒有填任何東西的情況下按了 submit 按鈕,會怎麼樣呢?如果你確實需要一個值,那麼可以用客戶端腳本或伺服器端腳本來進行資料驗證,這一點在前面已經說過了。但是,在資料庫中卻是允許一些欄位被空出來什麼也不填。對此類紀錄, MySQL 將要為之執行一些事情:

插入值 NULL ,這是缺省的操作。
如果你在欄位定義中為之宣告了 NOT NULL (在建立或修改這個欄位的時候), MySQL 會把這個欄位空出來什麼東西也不填。
對於一個 ENUM 枚舉類型的字段,如果你為之聲明了 NOT NULL , MySQL 將把枚舉集的第一個值插入到字段中。也就是說, MySQL 把枚舉集的第一個值當作這個枚舉類型的預設值。
  一個值為 NULL 的紀錄和一個空紀錄是有一些區別的。 % 通配符可以匹配空紀錄,但是卻不能匹配 NULL 紀錄。在某些時候,這種差異會造成一些意想不到的後果。就我的經驗而言,任何欄位都應該宣告為 NOT NULL 。這樣下面的SELECT 查詢語句就能夠正常運作了:

if (!$CITY) {$CITY = "%";}

$selectresult = mysql_query ("SELECT * FROM dbname

WHERE FIRST_NAME = ' 柳'

AND LAST_NAME = ' 如風'

AND CITY LIKE '$CITY'

"); 🎜>在第一行中,如果使用者沒有指定一個CITY 值,那麼就會用通配符% 來代入CITY 變量,這樣搜尋時就會把任何的CITY 值都考慮進去,甚至包括那些CITY 欄位為空的紀錄。

但如果有一些紀錄,它的 CITY 欄位值為 NULL ,這時問題就出現了。上面的查詢是不能夠找到這些欄位的。問題的一個解決方法可以是這樣:

if (!$CITY) {$CITY = "%";}

$selectresult = mysql_query ("SELECT * FROM dbname

WHERE FIRST_NAME = ' 柳'

AND LAST_NAME = ' 如風'

AND (CITY LIKE '$CITY' OR CITY IS NULL)

")
")

  注意在搜尋NULL 時,必須用「 IS 」關鍵字,而LIKE 時不會正常運作的。

在最後要提到的是,如果你在加入或修改一個新的欄位之前,資料庫中已經有了一些記錄了,這時新加入的欄位在原來的紀錄中的值,可能是NULL ,也可能為空。這也算是 MySQL 的一個 Bug 吧,所以在這種情況下,使用 SELECT 查詢要特別的小心。


http://www.bkjia.com/PHPjc/315398.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/315398.htmlTechArticleMySQL 中的SQL 對於MySQL ,第一件你必須牢記的是它的每一行命令都是用分號(;) 作為結束的,但…沒有完全絕對的事,在這兒也是一樣。 ...
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么判断有没有小数点php怎么判断有没有小数点Apr 20, 2022 pm 08:12 PM

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php怎么设置implode没有分隔符php怎么设置implode没有分隔符Apr 18, 2022 pm 05:39 PM

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中