programing

PHP7-MariaDB 데이터 양식 삽입

stoneblock 2023. 8. 2. 08:39

PHP7-MariaDB 데이터 양식 삽입

제가 초보자라 잠시만 기다려주세요. 마리아DB에 DATA를 추가하는 HTML 양식을 만들고 싶습니다.그냥 기본!하지만 난 할 수 없어요.

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 
Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<meta charset="utf-8" />
<head>
<title>PAGINA CARICAMENTO DATI</title>
</head>

<body>
<table border="0">
  <tr>
    <td align="center">Inserisci i dati richiesti</td>
  </tr>
  <tr>
    <td>
      <table>
        <form method="post" action="input.php">
        <tr>
          <td>Nome</td>
          <td><input type="text" name="name" size="20">
          </td>
        </tr>
        <tr>
          <td>Cognome</td>
          <td><input type="text" name="surname" size="20">
          </td>
        </tr>
         <tr>
          <td>Città</td>
          <td><input type="text" name="city" size="20">
          </td>
        </tr>
        <tr>
          <td></td>
          <td align="right"><input type="submit" 
          name="submit" value="Sent"></td>
        </tr>
        </form>
        </table>
      </td>
    </tr>
</table>
</body>
</html> 

그리고 PHP 부분은 다음과 같습니다.

<?php
$host='localhost';
$user='root';
$password='password';
$database='esempio';

$connection = mysqli_connect($host,$user,$password,$database);
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}


$name = $_POST['name'];
$surname = $_POST['surname'];
$city = $_POST['city'];

printf($name);
printf($surname);
printf($city);

$sql="INSERT INTO people (ID,Name,Surname,City)VALUES(default,$name,$surname,$city)";
printf($sql);
if(!mysqli_query($connection,$sql)){ 
printf("Errore: %s\n",mysqli_error($connection));
}
mysqli_close($connection);
?>

MARIADB에는 4개의 열이 있습니다.

  1. ID 색인 int(11) 없음 AUTO_INCREMENT 변경사항 드롭다운
  2. 이름 tinytext utf8_general_ci 없음 변경 없음 변경 드롭다운
  3. 성 tinytext utf8_general_ci 없음 변경 없음 변경 드롭다운
  4. 시티 tinytext utf8_general_ci 없음 변경 없음 변경 드롭다운

문자열 값을 따옴표로 묶어야 합니다.

VALUES('','$name','$surname','$city')

참고: ID 열이 AI이므로, 다음 항목을 제거합니다.default.

그러나 이를 위해서는 두 가지 이유로 데이터를 사용하지 않아야 합니다.

  • 이러한 값 중 MySQL이 불만을 제기할 문자(예: 아포스트로피)를 포함하는 경우.
  • SQL 주입을 엽니다.

대신 준비된 문을 사용합니다.

쿼리에 대한 오류도 확인합니다.

오류 보고:

빈 입력도 확인해야 합니다.

또한 열 유형을 올바르게 선택했는지 확인해야 합니다.tinytext여기서 사용하고 싶은 것이 아닐 수도 있지만, 여전히 작동할 것입니다.varchar문자열 리터럴을 사용할 때 일반적으로 선호되는 선택입니다.

상담:


HTML 스티커:

  • <form>의 자식이 될 수 없음<table>.

언급URL : https://stackoverflow.com/questions/40432893/php7-mariadb-insert-data-form