php mysql插入

Cle*_*lem 1 php mysql insert

我是php编程的新手,我在这里面临一个麻烦.可能对你们所有人来说都很简单,但是好吧..

当我尝试在名为"novica"的mysql表中插入一行时,第一次工作正常,但之后我无法添加任何新行.但是当我删除这一行时,我可以添加一个...但是再次只添加一行.我不知道是什么原因引起的.

这是我的小PHP:

<?php
    $con = mysql_connect("localhost","root","password");
    if (!$con)
    {
        die('Could not connect: ' . mysql_error());
    }

    mysql_select_db("sola", $con);
    mysql_query("INSERT INTO novica (naslov, vsebina, avtor, ustvarjeno) VALUES('$_POST[address]', '$_POST[content]', 'Klemen', NOW())");

    mysql_close($con);
?>
Run Code Online (Sandbox Code Playgroud)

这里是mysql导出sql代码:

-- phpMyAdmin SQL Dump
-- version 3.4.10.1deb1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Nov 22, 2012 at 06:41 PM
-- Server version: 5.5.28
-- PHP Version: 5.3.10-1ubuntu3.4

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `sola`
--

-- --------------------------------------------------------

--
-- Table structure for table `novica`
--

CREATE TABLE IF NOT EXISTS `novica` (
  `id_novica` int(10) NOT NULL,
  `naslov` text COLLATE utf8mb4_bin NOT NULL,
  `vsebina` text COLLATE utf8mb4_bin NOT NULL,
  `avtor` text COLLATE utf8mb4_bin NOT NULL,
  `ustvarjeno` date NOT NULL,
  `posodobljeno` date DEFAULT NULL,
  PRIMARY KEY (`id_novica`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

--
-- Dumping data for table `novica`
--

INSERT INTO `novica` (`id_novica`, `naslov`, `vsebina`, `avtor`, `ustvarjeno`, `posodobljeno`) VALUES
(0, 'a', 'a', 'Klemen', '2012-11-22', NULL);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Run Code Online (Sandbox Code Playgroud)

Kam*_*ami 6

您的主键未设置为自动增量.因此,当您插入新行时,可能会分配id为零,但任何后续插入都会因为已经获取该ID而失败.

将id添加到insert语句中或进行id_novica自动增量 - http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

CREATE TABLE IF NOT EXISTS `novica` (
  `id_novica` int(10) NOT NULL AUTO_INCREMENT,
  `naslov` text COLLATE utf8mb4_bin NOT NULL,
  `vsebina` text COLLATE utf8mb4_bin NOT NULL,
  `avtor` text COLLATE utf8mb4_bin NOT NULL,
  `ustvarjeno` date NOT NULL,
  `posodobljeno` date DEFAULT NULL,
  PRIMARY KEY (`id_novica`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
Run Code Online (Sandbox Code Playgroud)