php mysql 쿼리를 사용하여 양식 데이터를 데이터베이스에 삽입할 수 없습니다.
나는 php mysql에 매우 처음이며, 나는 데이터를 입력하기 위해 다음의 php를 사용하고 있습니다. 나의 var_dump는 내가 입력한 모든 값을 정확하게 보여줍니다. 데이터베이스 연결도 성공했습니다. 그러나 데이터는 MariaDB 테이블에 삽입되지 않았습니다.테이블 구조, 값 및 데이터 유형이 일치하는지 교차 확인했습니다.모든 것이 괜찮은 것처럼 보이지만 데이터베이스 테이블은 결코 데이터로 업데이트되지 않았습니다. 어떤 도움이든 감사합니다! 미리 감사드립니다.
dropdown-form.php
=================
<?php
include('database.php');
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Chiefdom Zambia</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/water.css@2/out/water.min.css">
<style>
.container
{
border-radius: 5px;
background-color: #f2f2f2;
padding: 20px;
}
.col-25
{
float: left;
width: 25%;
margin-top: 6px;
}
.col-75
{
float: left;
width: 75%;
margin-top: 6px;
}
/* Clear floats after the columns */
.row:after {
content: "";
display: table;
clear: both;
}
/* Responsive layout - when the screen is less than 600px wide, make the two columns stack on top of each other instead of next to each other */
@media screen and (max-width: 600px) {
.col-25,
.col-75,
input[type=submit] {
width: 100%;
margin-top: 0;
}
}
Chiefdom Empowerment Data Collection
<div class="container">
<div class="dependent-dropdown">
<form method="post" action="dropdown-form.php">
<legend style="text-align: center"> Land Info </legend>
<legend style="text-align: center"> Country : Zambia </legend>
<div class="input-field">
<select name="pro_id" id="country">
<option value="pro_id">Select your Province here</option>
<?php
$countryData = "SELECT id, name from countries";
$result = mysqli_query($conn, $countryData);
if (mysqli_num_rows($result) > 0) {
while ($arr = mysqli_fetch_assoc($result)) {
?>
<option value="<?php echo $arr['id']; ?>">
<?php echo $arr['name']; ?>
</option>
<?php
}
}
?>
</select>
</div>
<div class="input-field">
<select name="dist_id" id="state">
<option value="dist_id">Select your District here</option>
</select>
</div>
<div class="input-field">
<select name="chief_id" id="city">
<option value="chief_id">Select your Chiefdom here </option>
</select>
</div>
<input type="text" placeholder="Enter Zone Number " name="zone_no">
<input type="text" placeholder="Enter Zone Name " name="zone_name">
<input type="text" placeholder="Enter Locality" name="locality">
<legend style="text-align: center"> Farmer Info </legend>
<input type="text" placeholder="Enter Name of the Farmer" name="farmer_name"></input>
<input type="text" placeholder="Enter NRC Number of the Farmer " name="nrc_no">
<input type="text" placeholder="Enter Contact Number of the Farmer " name="contact_no">
<input type="text" placeholder="Land Holding in Hectare (Ha)" name="land_holding">
<legend style="text-align: center"> Crop Info </legend>
<select name="crops_no" id="form-selector">
<option value="0">Select Total Number of Crops </option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<br>
<button>submit</button>
</form>
</div>
</div>
</body>
</html>
<?php
$pro_id = filter_input(INPUT_POST, "pro_id", FILTER_VALIDATE_INT);
$dist_id = filter_input(INPUT_POST, "dist_id", FILTER_VALIDATE_INT);
$chief_id = filter_input(INPUT_POST, "chief_id", FILTER_VALIDATE_INT);
$zone_no = $_POST["zone_no"];
$zone_name = $_POST["zone_name"];
$locality = $_POST["locality"];
$farmer_name = $_POST["farmer_name"];
$nrc_no = $_POST["nrc_no"];
$contact_no = $_POST["contact_no"];
$land_holding = $_POST["land_holding"];
$crops_no = filter_input(INPUT_POST, "crops_no", FILTER_VALIDATE_INT);
ini_set('display_errors', 1); ini_set('log_errors',1); error_reporting(E_ALL); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$sql = "INSERT INTO farmer (' province`, `district`, `chiefdom`, `zone no`, `zone name`,`local`, `farmer name`, `nrc no`, `mobile no`, `land holding`, `no of crops`, ) VALUES ( ?,?,?,?,?,?,?,?,?,?,?)";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
die(mysqli_error($conn));
}
mysqli_stmt_bind_param(
$stmt,
"iiisssssssi",
$pro_id,
$dist_id,
$chief_id,
$zone_no,
$zone_name,
$locality,
$farmer_name,
$nrc_no,
$contact_no,
$land_holding,
$crops_no
);
if (mysqli_stmt_execute($stmt)) {
echo "Record added successfully";
} else {
echo "Error: " . mysqli_error($conn);
}
mysqli_stmt_close($stmt);
database.php
============
$dbHost = "localhost";
$dbUsername = "root";
$dbPassword = "";
$dbName = "ddl";
$conn = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName);
if ($conn->connect_error)
{
die("Connection failed: " . $conn->connect_error);
}
if (mysqli_connect_errno()) {
die("Connection Error: " . mysqli_connect_error());
}
시나리오:
데이터베이스 연결에 오류가 있는지 확인했습니다. 데이터 유형과 값이 완벽합니다. 테이블 열과 SQL 쿼리가 일치합니다. SQL 쿼리의 수동 입력은 데이터를 수락하고 테이블에서 업데이트됩니다.
다음 오류가 발생했습니다: 치명적 오류:mysqli_sql_exception이(가) 발견되지 않았습니다.SQL 구문에 오류가 있습니다. MariaDB 서버 버전에 해당하는 설명서에서 "province" 근처에서 사용할 올바른 구문을 확인하십시오.,
지역의,
우두머리의 세계,
구역 번호,
구역명,
현지의,
드롭다운 형식.php:255의 라인 1에서 'farmer...' 스택 추적: #0 드롭다운 형식.php(255): mysqli_stmt_prepare(오브젝트(mysqli_stmt), 'INSERT INTER IN FAR...') #1 {main}이(가) 드롭다운 형식으로 255행에 느려졌습니다.php
필드 이름 주위에 따옴표를 사용하지 않고 뒤로 체크 표시를 하는 것 같습니다.저는 구문 강조(공짜가 많이 있음)를 수행하는 편집기를 사용하는 것이 좋습니다. 그러면 이러한 문제가 눈에 띄게 됩니다.이렇게 하면 더 중요한 부분에 초점을 맞출 수 있습니다.
여기서 MySQL 구문은 정확하게 오류가 문제를 발견한 곳이 아닙니다.
INSERT INTO farmer (`province`, `district`, ...
-- ^ -- Fixed
MySQL이 오류 메시지에서 말하는 내용에 매우 주의하십시오.그것은 보통 캐릭터에게 정확한 문제를 지적하는 것입니다. 그리고 여기서 그렇게 했습니다.
언급URL : https://stackoverflow.com/questions/75128088/unable-to-insert-form-data-to-database-using-php-mysql-query
'programing' 카테고리의 다른 글
Vuex Axios 헤더에서 Uncaught TypeError를 반환함: 개체(...)가 Vuex의 함수가 아님 (0) | 2023.08.11 |
---|---|
스토리보드에서 인터페이스를 설정하는 Swift의 UIViewController에 대한 사용자 정의 init (0) | 2023.08.11 |
유니코드 지원에 wchar_t가 필요합니까? (0) | 2023.08.11 |
MySQL이 쿼리를 반환하지만 연결이 닫히지 않음 (0) | 2023.08.11 |
Node.js 로깅 (0) | 2023.08.11 |