홈>
상태 표
main.php 파일의 드롭 다운에서 PHP 파일을 사용하여 MySQL 서버로 값을 가져오고 싶습니다.
조건
사용자가 선택 항목을 선택하지 않았거나 기본 선택 항목을 선택하지 않은 경우 여기서 옵션 값은 0입니다.
옵션 값이 0이면 드롭 다운 값을 MySQL 서버에 삽입해서는 안됩니다.
add.php에 무엇을 추가해야합니까?
main.php
<option value="0">(Select Animal)</option>
다른 PHP 파일 (add.php)
<html>
<?php
include 'connection.php';
require_once 'add.php';
?>
<body>
<form method="post" action="add.php">
<select id="animal" name="animal">
<option value="0">(Select Animal)</option> <!--Non select option-->
<option value="Cat">Cat</option>
<option value="Dog">Dog</option>
<option value="Cow">Cow</option>
</select>
<button type="submit" name="Save">Save</button > <!--Send the selected value to add.php-->
</form>
</body>
</html>
<?php
include 'connection.php';
if(isset($_POST['Save']))
{
$animal = mysqli_real_escape_string($conn,$_POST['animal']; );
$conn->query("INSERT INTO animal (name) VALUES(?)");
header("location: main.php");
}
?>
- 답변 # 1
- 답변 # 2
어레이 키가 설정되어 있는지 확인하기 전에 배열 키가 있는지 확인하십시오. 그렇지 않으면 오류/경고가 발생할 수 있습니다.
동물 값이 0보다 큰지 확인하고 검색어에 포함 시키십시오.
<?php include 'connection.php'; if(array_key_exists('Save', $_POST)) { if(array_key_exists('animal', $_POST) && $_POST['animal'] > 0) { $animal = mysqli_real_escape_string($conn, $_POST['animal']); //Prepare statement $conn->prepare("INSERT INTO animal (name) VALUES (?)"); //Include animal value in string query $conn->bind_param("s", $animal); //Run query $conn->query($sql); header("location: main.php"); } else { //Fail gracefully header("location: error.php"); //Or whereever you want to redirect to. } } ?>
여기서 실제로 쿼리를 실행하고 있지는 않습니다.
그냥 문자열로 만들거나 동물의 가치를 더하지도 않습니다
또한
$_POST['animal']
후에 세미콜론을 제거하십시오mysqli_real_escape_string()
를 할 때 .수정 : 업데이트 한 내용으로 업데이트했습니다.
편집 2 : 문장을 올바르게 준비하는 데 필요한 것을 추가했습니다.
- 답변 # 3
@sony의 답변에서
if($_POST['animal']!= 0)
를 변경했습니다.if($_POST['animal']!= '0')
로 작동 시키십시오.변경
2 개의 작은 따옴표가 추가되었습니다.
<?php include 'connection.php'; if(isset($_POST['Save'])) { if($_POST['animal']!= '0') //2 Single quotes are added. { $animal = mysqli_real_escape_string($conn,$_POST['animal']); $sql="INSERT INTO animal (name) VALUES(?) "; header("location: main.php"); }else{ header("location: main.php"); } } ?>
관련 자료
- php - pdo 포착되지 않은 예외 - 테이블에 새 행을 삽입 할 때 삽입 값 목록이 열 목록과 일치하지 않습니다
- 한 쿼리에서 다른 열의 값을 기반으로 mySQL DB의 열 평균을 얻을 수 있습니까?
- javascript - 여러 드롭 다운을 복제 할 때 jQuery에서 여러 드롭 다운 목록 값을 얻는 방법
- php - 동일한 데이터 필드 이름으로 MySQL 데이터베이스 테이블에 데이터를 대량 삽입하는 방법은 무엇입니까?
- 모든 값을 삽입하지 않은 삽입 후 MySQL 생성 트리거
- excel - 드롭 다운 셀 유효성 검사 값을 선택하는 방법
- 제출 버튼을 사용하여 PHP를 통해 MySQL 데이터베이스에 삽입 하시겠습니까?
- 우분투 2004 서버에서 MYSQL에 포트 995 사용
- python - mysql 쿼리에 변수를 삽입하는 방법
- MySQL 커넥터를 사용하여 Python에 INT 데이터를 삽입 할 수 없음
- reactjs - reactstrap 드롭 다운 값을 신용 카드 구성 요소로 가져 오려면 어떻게해야합니까?
- sql - MySQL 쿼리 INSERT/SELECT/UPDATE 마지막 행
- javascript - 기존 개체 배열에 새 키 값을 삽입 하시겠습니까?
- php - mysql에서 다중 ID 관련 값을 얻는 방법
- pyspark - lit in spark 데이터 프레임을 사용하여 열에 값을 삽입하는 방법은 무엇입니까?
- MySQL 서버가 "서버 시작/실행 중"신호를 원격 서버에 보낼 수 있습니까?
- javascript - 여러 드롭 다운이있는 텍스트 영역에서 선택에서 값을 삽입하고 동일한 클래스 이름으로 선택하는 방법
- Python을 사용하여 텍스트 파일의 데이터를 SQL Server 테이블에 삽입하는 방법은 무엇입니까?
- 삽입 후 SQL Server 트리거 문제
- sql - MySQL은 char_length ()를 사용하여 문자열에서 값을 가져옵니다
관련 질문
- php : 잘못된 날짜 값 : 1 행의 '생일'열에 대한 ''
- PHP 및 MySQL : 사용자 입력을 데이터베이스의 데이터와 어떻게 비교합니까?
- php : mysql 데이터베이스에 단락을 저장하는 방법
- PHP를 사용하여 양식을 통해 데이터베이스에 항목 생성 시도
- while 루프 PHP에서 한 번만 작동하는 버튼
- php : $ _POST는 한 번만 트리거됩니다. 버튼의 입력을 계속 듣고 처리하려면 어떻게해야합니까?
- php : Laravel의 커서 문에 대한 원시 쿼리
- PHP 세션이 데이터베이스에서 ID를 얻지 못함
- php : 1.1.2.254가 내 데이터베이스에 존재한다면 !! 다음 1.1.2.253 proplem 사용
- PHP 스크립트와 함께 Wordpress 사용자 자격 증명을 사용하여 데이터를 iOS 앱으로 전송
아래와 같이 드롭 다운에 Javascript 유효성 검사를 사용하거나 동물의 $_POST 조건을 유지할 수 있습니다 :