[英]my HTML Form Using PHP and MySQL is not working
我正在嘗試創建一個簡單的HTML表單,該表單通過MySQL保存信息,但是在連接數據庫時遇到了一些問題。 我認為$ db_selected = mysql_select_db(DB_NAME,$ link); 給我問題。 FYI DB_NAME是我要使用的數據庫表。
我的HTML
<form action="demo.php" method="post">
<div class="form-group">
<label for="firstname">First Name:</label>
<input type="text" class="form-control" id="firstname" name="first_name">
</div>
<div class="form-group">
<label for="lastname">Last Name:</label>
<input type="text" class="form-control" id="lastname" name="last_name">
</div>
<div class="form-group">
<label for="dob">Date of birth:</label>
<input type="password" class="form-control" id="dob" name="date_of_birth">
</div>
<div class="form-group">
<label for="pob">Place of birth:</label>
<input type="text" class="form-control" id="pob" name="place_of_birth">
</div>
<div class="form-group">
<label for="government">Your Local government:</label>
<input type="text" class="form-control" id="government" name="government">
</div>
<div class="form-group">
<label for="qualifications">Qualifications:</label>
<textarea class="form-control" rows="5" id="qualifications" name="qualifications"></textarea>
</div>
<div class="form-group">
<label for="skills">Skills:</label>
<textarea class="form-control" rows="5" id="skills" name="skills"></textarea>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
我的PHP
<?php
define('DB_NAME', 'forms1');
define('DB_USER', 'c88888');
define('DB_PASSWORD', '*******');
define('DB_HOST', 's********.com');
$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD);
$db_selected = mysqli_select_db(DB_NAME, $link);
if (!$db_selected) {
die('Can\'t use ' . DB_NAME . ': ' . mysqli_error());
}
$value = $_POST['first_name'];
$value2 = $_POST['last_name'];
$value3 = $_POST['date_of_birth'];
$value4 = $_POST['place_of_birth'];
$value5 = $_POST['government'];
$value6 = $_POST['qualifications'];
$value7 = $_POST['skills'];
$sql = "INSERT INTO demo (first_name, last_name, date_of_birth, place_of_birth, government, qualifications, skills) VALUES ('$value', '$value2', '$value3', '$value4', '$value5', '$value6', '$value7')";
if (!mysqli_query($sql)) {
die('Error: ' . mysqli_error());
}
mysqli_close();
?>
只需將您選擇了db_select的代碼更改為:
$db_selected = mysqli_select_db($link, DB_NAME);
並確保在使用准備好的語句或mysqli_real_escape_string()
將值輸入數據庫之前先將其轉義,最好用方括號('{$value1}', '{$value2'})
來編寫您的值
嘗試將DB_HOST賦予“ localhost”,因為幾乎每個服務器都將數據庫存儲在localhost自身中。 嘗試使用以下代碼連接到數據庫,並確保輸入正確的數據庫名稱。
<?php
header("Access-Control-Allow-Origin: *");
define('DB_NAME', 'name');
define('DB_USER', 'user');
define('DB_PASSWORD', '****');
define('DB_HOST', 'localhost');
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if(!$dbc){
die('could not connect: ' .mysql_error());
}
?>
將SQL查詢寫為字符串時,請使用反引號(`)分隔數據庫字段。
您在單引號內使用'$value'
,這意味着PHP會將其理解為文字的$value
值,而不是變量。
您應該將查詢更改為:
$sql = "INSERT INTO `demo` (`first_name`, `last_name`, `date_of_birth`, `place_of_birth`, `government`, `qualifications`, `skills`)
VALUES ('" . $value . "', '" . $value2 . "', '" . $value3 . "', '" . $value4 . "', '" . $value5 . "' , '" . $value6 . "', '" . $value7 . "')";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.