【发布时间】:2011-09-28 05:46:24
【问题描述】:
所以在过去的三个小时里,我一直在尝试将 sql 插入到这个特定的表中,我想我开始发疯了。 我已经孤立了一些我认为可能是问题的东西,但如果您想了解更多信息,请随时询问
基本上我目前有两个 sql 表:concepts 和 FUideas(我对此感到非常沮丧),它们存储在同一个数据库中。当我运行以下代码时:
$con = mysql_connect('localhost', 'username', 'password');
mysql_select_db("my_db", $con);
$sql = "INSERT INTO `concepts` (description) VALUES ('HAI THAR')";
mysql_query($sql,$con);
它在概念中插入一行,但是当我运行这段代码时:
$con = mysql_connect('localhost', 'username', 'password');
mysql_select_db("my_db", $con);
$sql = "INSERT INTO `FUideas` (description) VALUES ('HAI THAR')";
mysql_query($sql,$con);
它什么都不做。 如果你在 phpMyAdmin 选项卡中执行此操作,则进一步弄乱你的脑袋::
INSERT INTO `FUideas` (description) VALUES ('HAI THAR')
有效!?!?!
请提供任何想法、代码、技巧?我很绝望! 如果你有任何预感或线索告诉我,我会尝试并报告结果
编辑
如何创建表的 PHP Myadmin 转储:
-- phpMyAdmin SQL Dump
-- version 3.3.9
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Jul 04, 2011 at 11:21 AM
-- Server version: 5.0.91
-- PHP Version: 5.2.9
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!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 */;
CREATE TABLE concepts (
id int(10) unsigned NOT NULL auto_increment,
title tinytext NOT NULL,
`user` tinytext NOT NULL,
`date` int(10) unsigned NOT NULL default '0',
summary tinytext NOT NULL,
description text NOT NULL,
tags tinytext NOT NULL,
ip tinytext NOT NULL,
appreciates tinyint(3) unsigned NOT NULL default '4',
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- phpMyAdmin SQL Dump
-- version 3.3.9
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Jul 04, 2011 at 11:23 AM
-- Server version: 5.0.91
-- PHP Version: 5.2.9
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!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 */;
--
-- Table structure for table 'FUideas'
--
CREATE TABLE FUideas (
id int(10) unsigned NOT NULL auto_increment,
`user` tinytext NOT NULL,
`date` int(10) unsigned NOT NULL default '0',
description text NOT NULL,
upvotes text NOT NULL,
downvotes text NOT NULL,
appreciated tinyint(3) unsigned NOT NULL default '0',
ip tinytext NOT NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
最终更新
对于其他关注此问题的人来说,事实证明我同时运行了旧代码,这导致了错误和不一致。
【问题讨论】:
-
我也不明白你的第一个语句是如何工作的。您有多个 NOT NULL 列,但只插入 1。
-
你可以使用 mysql_error([ resource $link_identifier ] ) 查看数据库中的最后一个错误。
-
嗨@Ash,欢迎使用Mysql ...那个叫做数据库引擎的“东西”,总是插入默认值:“”代表varchar和文本,0000-00-00代表日期,0代表整数等等……
-
@dotore - 好吧,很公平,我只使用过 MSSQL。那你能告诉我指定
NOT NULL的意义吗? -
@Ash 这样如果它未定义,它将返回 0 或 "" 而不是 NULL
标签: php sql insert phpmyadmin