PHP7-MariaDB插入数据表单

时间:2016-11-04 23:04:55

标签: php html mariadb

我是新手所以请耐心等待我想创建一个将数据添加到MariaDB的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更改更改     Drop Drop
  2. 名称tinytext utf8_general_ci否无更改更改Drop Drop
  3. 姓氏文字utf8_general_ci否无             变更变动下降
  4. 城市tinytext utf8_general_ci         否无变化变化下降

1 个答案:

答案 0 :(得分:1)

字符串值要求引用它们。

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

注意:由于您的ID列是AI,请删除default

但是,出于以下原因,这将要求您转义数据。

  • 如果这些值中的任何一个包含MySQL会抱怨的字符; 即:撇号。
  • 打开SQL注入。

改为使用预备声明。

同时检查查询错误:

错误报告:

您还应检查空输入。

另一件事是确保您已正确选择列类型。 tinytext可能不是您想要在这里使用的,但仍然可以使用;使用字符串文字时,varchar通常是首选。

请教:

HTML stickler:

  • <form>不能是<table>的孩子。