# PHP&MYSQL ###### tags: `PHP&MYSQL` `MYSQL` `PHP` --- ### 1.創建sqlConn 儲存為sqlConn.php(或sqlConn.inc) ```php= <?php $servsename = "localhost"; $username = "admin"; $password = "123456"; $con = new mysqli($servsename, $username, $password); //Check connection if(mysqli_connect_errno()){ echo "Connection Failed" . $con -> connect_error; } ?> ``` --- ### 2.創建資料庫&資料夾 最常用的就是char 與int 了。int (Integer)是用來儲存整數型態,而char 就是用來存放字元、字串的重要型態了 * char 固定大小浪費空間,所需計算時間少。 * varchar 不固定長度,必須要花費較多的CPU計算時間。(動態儲存) >詳細可參考[SQL:char 與 varchar 欄位型態考量](https://blog.xuite.net/tolarku/blog/29465482-SQL%EF%BC%9Achar+%E8%88%87+varchar+%E6%AC%84%E4%BD%8D%E5%9E%8B%E6%85%8B%E8%80%83%E9%87%8F) ```php= <?php //1.引用一次sqlconn.php的資料 include_once("sqlConn.php"); //2.創建資料庫,取名叫my_db if($con ->query("CREATE DATABASE my_db")){ echo "database created"; }else{ echo"Error creating database:" . $con-> error; } //3.創建資料表(Table) $con-> select_db("my_db"); //選取資料庫my_db //創建資料表,取名persons $sql = " CREATE TABLE persons ( personID int NOT NULL AUTO_INCREMENT, PRIMARY KEY(personID), FirstName varchar(15), LastName varchar(15), Age int )"; //Execute query $con -> query($sql); $con -> close(); ?> ``` ![](https://i.imgur.com/OEYYRAj.png) | SQL語法功能 | 說明 | | -------- | -------- | | <span class="code1">int</span> | 整數 | |<span class="code1">NOT NULL|沒有空白空格</span>| |<span class="code1">AUTO_INCREMENT</span>|自動編碼(需搭配PRIMARY KEY(id)使用)| |<span class="code1">query("CREATE DATABASE")</span>|創建資料庫| |UTF8-unicode-ci|UTF8編碼,減少不必要的亂碼| --- ### 3.建立資料 ```php= <?php include_once("sqlConn.php"); $con -> select_db("my_db"); $con -> query(" INSERT INTO persons(FirstName, LastName, Age) VALUES('Peter','Griffin','35') "); $con -> query(" INSERT INTO persons(FirstName, LastName, Age) VALUES('Gleen','Quamire','33') "); $con -> close(); ?> ``` ![](https://i.imgur.com/xqwFfdp.png) | SQL語法功能 | 說明 | | -------- | -------- | | <span class="code1">INSERT INTO 資料表名稱(資料1, 資料2, 資料3)VALUES(值1,值2,值3)</span> | 把資料寫入 | |<span class="code1">$con -> close()</span>|設定$con關閉 |<span class="code1">$con->("SET NAMES utf8")</span>|設定資料表為utf8編碼| --- ### 4.顯示資料 ```php= <?php //連結sqlConn.php,選擇my_db資料表 include_once("sqlConn.php"); $con -> select_db("my_db"); //定義$con 資料為選取全部(*)從persons 資料表 $result = $con -> query("SELECT * FROM persons"); echo "<table border='1'> <tr> <th>FirstName</th> <th>LastName</th> <th>Age</th> </tr> "; // while($row = $result -> fetch_array()){ echo "<tr>"; echo "<td>" .$row['FirstName']."</td>"; echo "<td>" .$row['LastName']."</td>"; echo "<td>" .$row['Age']."</td>"; echo "</tr>"; } echo "</table>" ?> ``` #### SELECT * FROM / WHERE...LIKE :::info WHERE...LIKE 抓取資料的用法不需要使用等於= 的符號,數值之間使用單引號''隔開 ```php= $result = $con -> query("SELECT * FROM persons WHERE FirstName LIKE '%e%' AND Age>'34'"); //包含e的字元並且Age大於34 ``` ::: ### 5.選取資料 更新&刪除 使用UPDATE SET & DELETE FROM WHERE 的資料屬性要放對,不然會改錯資料或誤刪喲~ ###### <span class="code1">↓ UPDATE SET</span> ``` $result = $con -> query("UPDATE persons SET Age='36' WHERE FirstName ='Peter' AND LastName='Griffin'"); ``` ###### <span class="code1">↓ DELETE FROM</span> ``` $result = $con -> query("DELETE FROM persons WHERE LastName='Griffin'"); ``` --- <style> h2 { color: #2383F8; } h3 { color: #1AA340; } h4 { color: #FFFFFF; background-color: #2383F8; padding:8px; } .code1 { padding: 2px 4px; font-size: 90%; color: #c7254e; background-color: #f9f2f4; border-radius: 4px; font-family:'Fira Code'; } .code { padding: 2px 4px; font-size: 90%; font-family:'Fira Code'; } </style>