时间:2021-07-01 10:21:17 帮助过:14人阅读
无标题文档
0) echo "xinwentianjiachenggong!";?>
fanhuijixutianjiaxinwen
include("connect_mysql.php");
mysql_open();
include("connect_mysql.php");
mysql_open();
不行啊,还是点击提交后,就打开insert.php,没有执行插入操作。。。
就打开insert.php 是什么意思?
楼主确认php环境没问题???
没看见楼主的提交按钮有onclick事件啊?
哎 看了那么多人的代码,还是lz的最好理解!!!!
就打开insert.php 是什么意思?
打开的意思就是,会用系统默认的php文件编辑器打开insert.php,例如,我这默认使用Emeditor打开。。。。。。
php环境配好了没有,文件有没有放入web服务器根目录下,怎么访问的?
php环境配好了没有,文件有没有放入web服务器根目录下,怎么访问的?
php环境配置应该没问题,我用的是eclipse_php,文件放在D:\Program Files\Apache Software Foundation\Apache2.2\htdocs\TestInsert(TestInsert是工程名),然后访问http://localhost/TestInsert/Page.html填写数据后,点击提交,弹出一个http://localhost/TestInsert/insert.php页面,但是数据库里面什么都没变啊。
就打开insert.php 是什么意思?
打开的意思就是,会用系统默认的php文件编辑器打开insert.php,例如,我这默认使用Emeditor打开。。。。。。
这个说错了,无视吧,应该是弹出一个http://localhost/TestInsert/insert.php页面,IE打开的
弹出下载页面说明php环境没有搭配成功
弹出下载页面说明php环境没有搭配成功
我觉得应该不是环境的问题,如果我直接把插入语句写在一个php中(值直接写好),是可以插入数据到数据库的,但是这种从页面获取的就不行。
弹出下载页面说明php环境没有搭配成功
而且我检查过了,PHP5,Mysql,Apache以及eclipse的安装,没看出啥问题。。。
,问题出现在链接数据库上,
链接数据库函数有问题,注释掉下面的函数部分就可以直接执行了!
//function mysql_open()
//{
$mysql_servername="localhost"; //
$mysql_username="root";
$mysql_password="11111";
$mysql_dbname="new";
$conn=mysql_connect($mysql_servername ,$mysql_username ,$mysql_password);
mysql_query("set names UTF8"); //UTF8
mysql_select_db($mysql_dbname , $conn);
// return $conn;
//}
,问题出现在链接数据库上,
链接数据库函数有问题,注释掉下面的函数部分就可以直接执行了!
//function mysql_open()
//{
$mysql_servername="localhost"; //
$mysql_username="root";
$mysql_password="11111";
$mysql_dbname="new";
$conn=mysql_connect($mysql_servername ,$mysql_username ,$mysql_password);
mysql_query("set names UTF8"); //UTF8
mysql_select_db($mysql_dbname , $conn);
// return $conn;
//}
你这个方法跟1楼是一样的,不是这个问题。
0) echo "xinwentianjiachenggong!";?>
fanhuijixutianjiaxinwen
$result = mysql_query($sql1);
这样得到的result也不是数据库中存的1、2、3这样的值,然后导致更新失败,提示Error: Incorrect integer value: '' for column 'id' at row 1,想问问大家怎么样才能通过查询得到正确的id,或者result值然后插入数据库呢。
如果 id 是主键,那么因为主键不能重复,你向其赋 max(id) 显然是不对的!应为 max(id) + 1
如果 id 是主键,且是自增的,那么就无需向 id 赋值
如果 id 不是主键,但不允许为空,那么不向 id 赋值就是错误的
其实只要打印出 mysql_error() 的结果,就一切明了了
$id = mysql i_fetch_assoc($result); //连接用mysql,这里又用mysqli,肯定要错了,且返回的是一个数组
至少需要这样
$sql="INSERT INTO new (id,title, content, time, news_cate_id)
VALUES
('".$id['max(id)']."','".$_POST["title"]."','".$_POST["content"]."',now(),".$_POST["c_id"].")";
如果你的id是主键,插入同一个id是会出错的。
如果 id 是主键,那么因为主键不能重复,你向其赋 max(id) 显然是不对的!应为 max(id) + 1
如果 id 是主键,且是自增的,那么就无需向 id 赋值
如果 id 不是主键,但不允许为空,那么不向 id 赋值就是错误的
其实只要打印出 mysql_error() 的结果,就一切明了了
如果 id 是主键,那么因为主键不能重复,你向其赋 max(id) 显然是不对的!应为 max(id) + 1这个我知道,只不过上面写得吧$id++;那句漏掉了。
id是主键,怎么设置主键自增啊。是不是在建表的时候哪里能设置啊?
我数据库的sql如下,哪里不对么?
/*Navicat MySQL Data TransferSource Server : testSource Server Version : 50153Source Host : localhost:3306Source Database : newTarget Server Type : MYSQLTarget Server Version : 50153File Encoding : 65001Date: 2013-06-04 14:21:53*/SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for `new`-- ----------------------------DROP TABLE IF EXISTS `new`;CREATE TABLE `new` ( `id` int(11) NOT NULL, `title` varchar(50) DEFAULT NULL, `content` varchar(100) DEFAULT NULL, `time` datetime DEFAULT NULL, `news_cate_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Records of new-- ----------------------------INSERT INTO `new` VALUES ('1', '111', '111', '2013-06-04 09:40:29', '1');INSERT INTO `new` VALUES ('2', 'eee', 'eeee', '2013-06-04 13:28:20', '1');
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
这样的话主键就自增了对吧,但是上面对应的
$sql="INSERT INTO new (id,title, content, time, news_cate_id)
VALUES
('".$id."','".$_POST["title"]."','".$_POST["content"]."',now(),".$_POST["c_id"].")";
这部分应该怎么对应改动呢
$sql="INSERT INTO new (title, content, time, news_cate_id)
VALUES
('".$_POST["title"]."','".$_POST["content"]."',now(),".$_POST["c_id"].")";
知道了,只需要改成最初的样子就可以了,谢谢大家结贴了,结贴之前先追加点分数,以表示感谢