mysql - 如何通过webform向数据库添加数据

标签 mysql webforms

我是 PHP 和 MySQL 新手。

我使用基本代码将条目添加到数据库 http://smallbusiness.chron.com/transfer-data-form-database-46976.html我执行以下操作:

数据库:

CREATE TABLE IF NOT EXISTS `autos` (
  `CIID` int(11) NOT NULL AUTO_INCREMENT,
  `Anio` text,
  `Marca` text,
  `Tipo` text,
  `Modelo` text,
  `Color` text,
  `Descripcion` text,

  PRIMARY KEY (`CIID`)
) ENGINE=MyISAM;

INSERT INTO `autos` (`CIID`, `Anio`, `Marca`, `Tipo`, `Modelo`, `Color`, `Descripcion`)  VALUES

('1', '2008', 'VW', 'Auto', 'Jetta', 'Azul', ''),
('2', '2008', 'Chevrolet', 'Auto', 'Cobalt', 'Blanco', ''),
('3', '2006', 'Chevrolet', 'Auto', 'Cobalt', 'Gris', ''),
('4', '2001', 'Chevrolet', 'Suv', 'Avalanche', 'Azul', ''),
('5', '1999', 'Chevrolet', 'Auto', 'Camaro', 'Azul', '');

index.php:

<html>
<head>
    <meta charset="utf-8">
</head>
<body>

<b>Añadir Registro:</b>
<form action=add.php method=”post”>
<table border=0>
<tr><td>
    Año
</td><td>
    <input type="text" name="Anio[]" size="20">
</td></tr><tr><td valign=top>
    Marca
</td><td valign=top>
    <select name="Marca[]" class="dropdown">
        <option value="">Selecciona Marca</option>
        <option value=""></option>
        <option value="Acura">Acura</option>
        <option value="Aston Martin">Aston Martin</option>
        <option value="Audi">Audi</option>
        <option value="Bentley">Bentley</option>
        ...
    </select>
</td></tr><tr><td valign=top>
    Tipo
</td><td valign=top>
    <select name="Tipo[]" class="dropdown">
        <option value="">Selecciona Tipo</option>
        <option value=""></option>
        <option value="Moto">Moto</option>
        <option value="Auto">Auto</option>
        <option value="Minivan">Minivan</option>
        ...
    </select>
</td></tr><tr><td valign=top>
    Modelo
</td><td valign=top>
    <input type="text" name="Modelo[]" size="20">
</td></tr><tr><td valign=top>
    Color
</td><td valign=top>
    <input type="text" name="Color[]" size="20">
</td></tr><tr><td valign=top>
    Descripción
</td><td valign=top>
    <textarea name="Descripcion[]" rows="10" cols="40"></textarea>
</td></tr><tr><td valign=top>

</td><td valign=top>
    <input type=submit value="Añadir">
</form>
</td></tr>
</table>

</body>
</html>

添加.php:

<?php
     $connect = mysql_connect(“localhost”, “high_pipo”, “*****”);
     if (!connect) { die('Connection Failed: ' . mysql_error());
     { mysql_select_db(“high_pipo”, $connect);
     $user_info = “INSERT INTO `autos` (CIID, Anio, Marca, Tipo, Modelo, Color, Descripcion) VALUES ('75', '$_POST[Anio]',
 '$_POST[Marca]', '$_POST[Tipo]', '$_POST[Modelo]', '$_POST[Color]',
 '$_POST[Descripcion]')”;
     if (!mysql_query($user_info, $connect)) { die('Error: ' . mysql_error());
     }
     echo “Your information was added to the database.”;
     mysql_close($connect); ?>

我收到以下错误:解析错误:语法错误,第 5 行/home/high/public_html/masautos/administracion/add.php 中出现意外的“INTO”(T_STRING)

我该如何解决这个问题? 另外,如何将第一个字段(CIID)定义为add.php或index.php上的自动增量,如db上标记的那样?

最佳答案

如果在您的数据库中 ciid 被标记为自动增量,那么您在插入中不需要它。 也尝试不再使用 mysql_query 。准备好的语句是一种更好的方法。

$dbh = new PDO('mysql:host=localhost;dbname=your_database_name', $user, $pass);
$stmt = $dbh->prepare("INSERT INTO `autos` (`Anio`, `Marca`, `Tipo`, `Modelo`, `Color`, `Descripcion`) VALUES (:anio, :marca, :tipo, :modelo, :color, :descripcion)");
$stmt->bindParam(':anio', $_POST['Anio']);
$stmt->bindParam(':marca', $_POST['Marca']);
$stmt->bindParam(':tipo', $_POST['Tipo']);
$stmt->bindParam(':modelo', $_POST['Modelo']);
$stmt->bindParam(':color', $_POST['Color']);
$stmt->bindParam(':descripcion', $_POST['Descripcion']);
$stmt->execute();

如果您在此表的 1 个或 2 个或多个字段中使用索引或主键,则可以在重复键更新上使用 insert ...,如本教程 http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html 所示。 如果您想在查询中保留错误日志,则可以将它们包含在 try-catch 语句中,并且可以将错误写入应用程序根目录中的 txt 文件中。 关闭数据库连接使用

$dbh = null;

关于mysql - 如何通过webform向数据库添加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27517343/

相关文章:

mysql - 比较大量加权标签云?

SQL:日期字段集中的最早日期

mysql - MySQL : how to enable autocommit? 上的 Django

mysql - PDO 未更新

php - MySQL SELECT DISTINCT 输出重复项

c# - 如果我使用 ASP.NET 标识,我会被 EF 困住吗?

asp.net - 页面指​​令继承属性

ASP.Net 本地化 InitializeCulture 控件始终为 null

c# - 如何将 CSS 添加到另一个对象的一部分?

c# - 如何将类 View 用于 Visual Studio 中隐藏的网页代码?