您好,登錄后才能下訂單哦!
MySQL的ENUM和SET類(lèi)型是用于在數(shù)據(jù)庫(kù)中存儲(chǔ)一組預(yù)定義的值的數(shù)據(jù)類(lèi)型
首先,我們創(chuàng)建一個(gè)包含ENUM和SET類(lèi)型的表。例如,我們創(chuàng)建一個(gè)名為user_info
的表,其中包含gender
(性別)和hobbies
(愛(ài)好)兩個(gè)字段,分別使用ENUM和SET類(lèi)型存儲(chǔ)預(yù)定義的值。
CREATE TABLE user_info (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
gender ENUM('male', 'female', 'other'),
hobbies SET('reading', 'traveling', 'sports', 'music')
);
接下來(lái),我們向表中插入一些數(shù)據(jù)。對(duì)于ENUM類(lèi)型,我們可以直接傳入值,如果傳入的值不在預(yù)定義的范圍內(nèi),將會(huì)插入空字符串(‘’)。
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 創(chuàng)建連接
$conn = new mysqli($servername, $username, $password, $dbname);
// 檢查連接
if ($conn->connect_error) {
die("連接失敗: " . $conn->connect_error);
}
// 插入數(shù)據(jù)
$name = "John";
$gender = "male";
$hobbies = "reading,traveling";
$sql = "INSERT INTO user_info (name, gender, hobbies) VALUES ('$name', '$gender', '$hobbies')";
if ($conn->query($sql) === TRUE) {
echo "新記錄插入成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
現(xiàn)在,我們從表中查詢(xún)數(shù)據(jù),并處理ENUM和SET類(lèi)型的值。對(duì)于ENUM類(lèi)型,我們可以使用$_POST['enum_field']
的方式獲取值,而對(duì)于SET類(lèi)型,我們需要遍歷預(yù)定義的值集合來(lái)檢查是否存在。
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 創(chuàng)建連接
$conn = new mysqli($servername, $username, $password, $dbname);
// 檢查連接
if ($conn->connect_error) {
die("連接失敗: " . $conn->connect_error);
}
// 查詢(xún)數(shù)據(jù)
$sql = "SELECT * FROM user_info";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 輸出每行數(shù)據(jù)
while($row = $result->fetch_assoc()) {
$name = $row["name"];
$gender = $row["gender"];
$hobbies = $row["hobbies"];
echo "Name: " . $name . ", Gender: " . $gender . ", Hobbies: ";
// 處理ENUM類(lèi)型
switch ($gender) {
case 'male':
echo "男性";
break;
case 'female':
echo "女性";
break;
case 'other':
echo "其他";
break;
default:
echo "";
}
// 處理SET類(lèi)型
$hobbies_array = explode(',', $hobbies);
foreach ($hobbies_array as $hobby) {
switch ($hobby) {
case 'reading':
echo "閱讀";
break;
case 'traveling':
echo "旅行";
break;
case 'sports':
echo "運(yùn)動(dòng)";
break;
case 'music':
echo "音樂(lè)";
break;
}
}
echo "<br>";
}
} else {
echo "0 結(jié)果";
}
$conn->close();
?>
這樣,我們就可以在PHP中使用MySQL的ENUM和SET類(lèi)型了。注意,在實(shí)際應(yīng)用中,為了防止SQL注入,建議使用預(yù)處理語(yǔ)句(prepared statements)來(lái)插入和查詢(xún)數(shù)據(jù)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。