PHP7-MariaDB插入数据表
PHP7-MariaDB Insert data form
我是新手所以请耐心等待我想创建一个 HTML 表单来将数据添加到 MariaDB。只是基本的!但是我做不到
<!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>
AND 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 列:
- ID 索引 int(11) 否 None AUTO_INCREMENT 更改更改
滴滴
- 名称 tinytext utf8_general_ci 否 None 更改更改 Drop Drop
- 姓氏 tinytext utf8_general_ci 否 None
改变改变下降下降
- 城市 tinytext utf8_general_ci
否None 改变改变下降下降
字符串值需要用引号引起来。
VALUES('','$name','$surname','$city')
注意:由于您的 ID 列是 AI,请删除 default
。
但是,出于 2 个原因,这需要您转义数据。
- 如果这些值中的任何一个包含 MySQL 会抱怨的字符; 即: 撇号。
- 打开 SQL 注入。
改为使用准备好的语句。
同时检查查询是否有错误:
并报错:
您还应该检查空输入。
另一件事是确保您选择了正确的列类型。 tinytext
可能不是您想在这里使用的,但仍然可以使用; varchar
通常是使用字符串文字时的首选。
咨询:
- http://dev.mysql.com/doc/refman/5.7/en/string-type-overview.html
- TINYTEXT, TEXT, MEDIUMTEXT, and LONGTEXT maximum storage sizes
HTML 坚持者:
<form>
不能是 <table>
. 的子代
我是新手所以请耐心等待我想创建一个 HTML 表单来将数据添加到 MariaDB。只是基本的!但是我做不到
<!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>
AND 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 列:
- ID 索引 int(11) 否 None AUTO_INCREMENT 更改更改 滴滴
- 名称 tinytext utf8_general_ci 否 None 更改更改 Drop Drop
- 姓氏 tinytext utf8_general_ci 否 None 改变改变下降下降
- 城市 tinytext utf8_general_ci 否None 改变改变下降下降
字符串值需要用引号引起来。
VALUES('','$name','$surname','$city')
注意:由于您的 ID 列是 AI,请删除 default
。
但是,出于 2 个原因,这需要您转义数据。
- 如果这些值中的任何一个包含 MySQL 会抱怨的字符; 即: 撇号。
- 打开 SQL 注入。
改为使用准备好的语句。
同时检查查询是否有错误:
并报错:
您还应该检查空输入。
另一件事是确保您选择了正确的列类型。 tinytext
可能不是您想在这里使用的,但仍然可以使用; varchar
通常是使用字符串文字时的首选。
咨询:
- http://dev.mysql.com/doc/refman/5.7/en/string-type-overview.html
- TINYTEXT, TEXT, MEDIUMTEXT, and LONGTEXT maximum storage sizes
HTML 坚持者:
<form>
不能是<table>
. 的子代