PHP操作MySQL資料庫

2020-10-02 13:00:08

PHP操作MySQL資料庫

前言

在正式開始學習前,我們需要開啟mysqli擴充套件,使用phpinof()你可以看到如下展示就說明開啟成功:

在這裡插入圖片描述
若沒有看到mysqli擴充套件在windows伺服器下,開啟php.ini檔案,將php_mysqli.dll開啟即可。

注意:

從PHP7開始預設不再支援mysql擴充套件,即不再支援mysql_*系列函數。請使用mysqli連線資料庫。

mysqli即支援php5也支援php7。

建立表結構:

mysql> create table if not exists users (
    ->    id int(10) unsigned primary key auto_increment not null,
    ->    username varchar(30),
    ->    password varchar(100),
    ->    createtime varchar(40) not null,
    ->    createip binary(16)
    -> );
Query OK, 0 rows affected (0.02 sec)

index.html 程式碼

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>PHP操作MySQL資料庫</title>
</head>

<body>

<form action="connect.php" method="post">
    使用者名稱:<input type="text" name="username"><br />
    密碼:<input type="password" name="password"><br />
    重複密碼:<input type="password" name="repassword"><br />
    <input type="submit" value="提交">
</form>

</body>

</html>

connect.php程式碼如下:

<?php

if (trim($_POST['password']) != trim($_POST['repassword'])) {

    exit('兩次密碼不一致,請返回上一頁');

}

$username = trim($_POST['username']);

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

$time = time();

$ip = $_SERVER['REMOTE_ADDR'];

$conn = mysqli_connect('localhost', 'root', '123456');

//如果有錯誤,存在錯誤號
if (mysqli_errno($conn)) {

    echo mysqli_error($conn);

    exit;
}

mysqli_select_db($conn, 'php');

mysqli_set_charset($conn, 'utf8');

$sql = "insert into users(username,password,createtime,createip) 
values('" .$username. "','" .$password. "','" .$time. "','".$ip."')";
//echo $sql.PHP_EOL;
$result = mysqli_query($conn, $sql);

if ($result) {
    echo '資料寫入成功'.PHP_EOL;

} else {
    echo '資料寫入失敗';

}

echo '當前使用者插入的ID為:' . mysqli_insert_id($conn);

mysqli_close($conn);

?>

list.php程式碼如下:

<?php

$conn = mysqli_connect('localhost', 'root', '123456', 'php');

if (mysqli_errno($conn)) {
    mysqli_error($conn);
    exit;
}

mysqli_set_charset($conn, 'utf8');

$sql = "select id,username,createtime,createip from users order by id desc";
//進行降序排序
$result = mysqli_query($conn, $sql);

if ($result && mysqli_num_rows($result)) {
//查詢出來的行數可以使用mysqli_num_rows。這個函數要求傳入$result查詢的結果變數。
//如果有結果則顯示列表,如果沒有結果我們產生一句提示即可。

   echo '<table width="800" border="1">';

   while ($row = mysqli_fetch_assoc($result)) {
//使用到的函數是mysqli_fetch_assoc,返回的會是一個關聯陣列。
//這個函數讀取一個結果集,會向後移動一次。讀取到最後沒有結果的時候會返回bool值的false。因此,我們選擇while來配合mysqli_fetch_assoc。
//每次迴圈的結果賦值給$row,$row中是關聯陣列。因此我在這次迴圈中,可以將行和列都顯示出來。
       echo '<tr>';

       echo '<td>' . $row['username'] . '</td>';
       echo '<td>' . date('Y-m-d H:i:s', $row['createtime']) . '</td>';
       echo '<td>' . long2ip($row['createip']) . '</td>';
       echo '<td><a href="edit.php?id=' . $row['id'] . '">編輯使用者</a></td>';
       echo '<td><a href="delete.php?id=' . $row['id'] . '">刪除使用者</a></td>';

       echo '</tr>';
   }

   echo '</table>';

} else {
    echo '沒有資料';
}

mysqli_close($conn);

?>

end