上個筆記寫到了數據庫的配置具體請看《我的php學習第十九天——PHP工作原理及mysql的配置》
1.現在來記錄下數據庫的操作。
登錄MySQL客戶端:mysql -hlocalhost -uroot -proot
顯示數據庫:show databases;
創建數據庫:create database if not exists db_name charset utf8; //默認的字符集是latin1
上圖表示:創建數據庫成功,有一個行被影響。
刪除數據庫:drop database if exists db_name;
注意:不管是MySQL,還是PHP,應該儘量少的把錯誤信息暴露給瀏覽者。
選擇數據庫:use db_name;
操作數據庫中數據的一個流程
第一步:連接到MySQL數據庫服務器
第二步:選擇一個數據庫作為當前操作的數據庫,在虛擬主機中,對別人的數據庫無權限
第三步:修改返回數據的字符集:set names utf8
第四步:對某個表進行操作:增、刪、改、查
創建數據表:create table table_name(col_name type attribute)
create table students(
id int(5) not null auto_increment primary key,
name varchar(10) not null,
sex tinyint(1) not null default 1, # 1代表男,0代表女
age tinyint(2) not null default 0,
edu char(9) not null, # GBK字符集中,一個漢字兩個字節;UTF8字符集中,一個漢字三個字節;
addate datetime
);
列的類型:
tinyint 0-255 或 -128——127 小型整數
int 一般整數
float(m,n) 浮點數
varchar(m) 單行文本
Text 多行文本
Date 日期型
Time 日期型
Datetime 日期時間型
SQL語句:增、刪、改、查
(1)INSERT INTO增加記錄
insert into table_name(title,content,addate) values(‘Beijing’,’content’,now());
(2)DELETE FROM刪除記錄
delete from table_name where id>10 and id<100;
(3)UPDATE SET修改一條記錄
update table_name set title=“新的title”,author=“user” where id=10
(4)SELECT查詢記錄
SELECT * FROM table_name where id>10;
SELECT title,author,source FROM table_name WHERE title like(‘%蘋果%’); //模糊查詢
SELECT * FROM table_name where id>10 ORDER BY hits DESC; //對點擊率降序排列
SELECT * FROM table_name where id>10 ORDER BY hits DESC LIMIT 10,10;//返回第10行開始的10條記錄
2.PHP簡介
PHP,Hypertext preprocessor,超文本預處理器。
PHP是服務器端的腳本語言,只能在服務器來運行;
客戶端看不到什麼的PHP代碼和註釋,JS在“源代碼”中可以看見;
PHP的語法,結合了C、Java、Perl、JS等語言的特點;
PHP主要應用於網站方面,這種結構B/S結構;
PHP的入門相當於簡單(Java)。
3.PHP語言基礎
PHP代碼和ASP、JSP一樣,都是直接嵌入到HTML網頁中去;
PHP的標記:<?php …… ?>
PHP的每行程序必須以英文下的分號(;)結束;JS的語句的分號可有可無;
PHP語言是區分大小寫的,但關鍵字和函數名不區分大小寫;比如:true 、TRUE
上述代碼的說明(與JS的不同之處):
echo函數,嚴格來說是一個語法結構,輸出字符集到網頁中;echo和後面要輸出的內容間至少有一個空格;
$name是PHP中的變量,每個變量必須以“$”符號開頭;
"$name 的年齡是 $age"在PHP中,可以在雙引號內,直接書寫變量名稱;JS中不可以;
4.PHP文件的訪問
因為PHP文件是服務器端腳本程序,因此訪問PHP文件,必須要經過服務器的處理,才能看到結果。PHP的訪問與HTML的訪問完全不一樣,PHP文件的訪問,是必須要經過服務器來處理,也就是必須要進行虛擬主機的配置,才可以執行PHP文件。最在客戶端,看到的只是PHP的執行結果HTML代碼,PHP源代碼是看不見的,是為了保證網站的安全。
舉例:http://www.cwhello.com/about/index.php
說明:www.cwhello.com指向的是一個虛擬空間(目錄),該目錄要有一定的訪問權限。
5.PHP註釋
單行註釋://或#
多行註釋:/*註釋內容*/
注意:PHP的註釋在發往客戶端之前,已經被過濾掉了。
6.PHP變量
變量是存儲數據的臨時空間。如:$name = “張三”;
變量的命名規則:
變量中可以包含:大小寫字母、數字、下劃線。
PHP中變量必須以美元符號$開頭;
PHP中變量的不需要提前聲明,使用時直接賦值即可;
PHP的變量不能以數字開頭;如:$12abc = 100 //不合法的變量名
PHP中的變量名可以是關鍵字(JS的關鍵字不能作為變量名);如:$true = 100;
7.PHP變量數據類型
PHP和JS中,變量的類型,主要取決於賦的什麼值。
JS中的數據類型:
基本數據類型:string、boolean、number、null、undefined
複合數據類型:array、object、function
PHP中的數據類型:
基本數據類型(4):int(整型)、float(浮點型)、boolean(布爾型)、string(字符型)
複合數據類型(2):array(數組)、object(對象)
特殊數據類型(2):resource(資源)、 NULL(空)
資源類型:可以這樣理解,訪問外部文件時,返回的結果。
比如:PHP連接數據庫、PHP創建圖片文件。
NULL型:只有一個值NULL,代表變量沒有賦值。以下情況代表NULL
$A = NULL; //給一個變量賦一個NULL值
unset($a); //刪除一個變量
布爾型:只有兩個值true和false。
整型:就是指整數,10 、 100 、 -100 、-23
浮點型:就是指小數,90 、23.90 、-90 、89
字符型
字符串的表達方式有三種方法:
(1)用單引號引起來的,在單引號內只能使用 ’、
舉例:$name = ‘Beijing’;
(2)用雙引號引起來的,在雙引號內可以使用所有的轉義字符。
舉例:$name = “Beijing”;
(3)heredoc方式:可以保存長文本
heredoc的語法格式
$str = <<<heredoc
//中間可以書寫很多內容
heredoc;
使用注意事項
1)heredoc是自己定義的名字,可以隨便指定;比如:eot、heredoc
2)<<<heredoc是長文本的開始標記
3)heredoc; 是長文本的結束標記,heredoc;必須單獨一行,並且不能縮進。
4)在這種格式下,所有的符號都可以使用;
5)如果要引用變量時,請將變量放在{}中。如:{$name}
$name = "張三";
$str = <<<heredoc
<h1>heredoc的應用——"{$name}"</h1>
<p>這裡是一個段落</p>
<ul>
<li><a href="#">今日頭條</a></li>
</ul>
heredoc;
echo $str;
字符串中的注意事項
在雙引號中的變量,輸出時,只接輸出的是值;
在單引號中的變量,輸出時,輸出的是變量的名稱;
如果在一個變量後,跟著非空的字符,則PHP翻譯器會糊塗,也就說會當成一個變量來處理。
$str = “重蔚$name自留地”; //會將“$ name自留地”當成一個變量
$str = “重蔚{$name}自留地”; //將翻譯器容易糊塗的變量放到{}中
<?php
8.判斷變量的數據類型
var_dump()
含義:打印變量的值和類型
格式:var_dump($var1,$var2,$var3,……)
注意:該函數直接就可以輸出結果,前面不需要再加echo輸出語句。
提示:如果使用UTF8來輸出漢字,則一個漢字用3個字節表示;如果使用GBK或GB2312,則一個漢字用2個字節表示。
通過IS_*函數作判斷:結果只有true和false
is_bool() 判斷是不是布爾型
is_string() 判斷變量是不是字符串型
is_numeric() 判斷變量是不是數值型
is_array() 判斷變量是不是數組
is_object() 判斷變量是不是對象
$a = 1200;
if(is_int($a))
{
echo "{$a}是整型";
}else
{
echo "{$a}不是整型";
}
isset()
含義:判斷給定的變量是否設置
格式:bool isset($var)
返回值:如果存在,則返回true,否則,返回false
注意:一般用於變量的測試,如果用於常量的測試,將返回解析錯誤。
提示:除了NULL值外,一律都為true
//判斷給字的變量是否設置
$a = 0;
$a = 100;
$a = "";
$a = "0";
$a = false; //返回true
$a = NULL; //返回false
$a = 0.0; //返回true
$a = "abc"; //返回true
if(isset($a))
{
echo "OK";
}else
{
echo "NO";
}
empty()
含義:測試變量,如果變量的值為空,則返回true,不空返回false。
格式:bool empty($var)
注意:除了””、”0”、0、false、NULL、0.0這個值外,都返回false。
//判斷給定的變量是否為空
$a = 0;
$a = 100;
//$a = "";
//$a = "0";
//$a = false; //返回true
//$a = NULL; //返回true
//$a = 0.0; //返回true
//$a = "abc"; //返回false
if(empty($a))
{
echo "為空";
}else
{
echo "不空";
}