新手问个低级问题

Bone2 2011-02-10 04:30:52
模仿例子做的,写入MYSQL中的message表中,conn.php连接数据库测试是成功的,但是表单提交不能将数据写入数据库中,跟示范是一样的,但是一直fail。。。不知道问题出在哪了,请指点。下面是php代码
<?php
include("conn.php");

if($_POST['submit']){
$sql = "insert into message (id,user,title,content,lastdate) " .
"values('','$_POST[user],'$_POST[title]','$_POST[content]',now())";

@mysql_query($sql) or die("fail");
}
?>
...全文
133 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyaspnet 2011-02-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 bone2 的回复:]
模仿例子做的,写入MYSQL中的message表中,conn.php连接数据库测试是成功的,但是表单提交不能将数据写入数据库中,跟示范是一样的,但是一直fail。。。不知道问题出在哪了,请指点。下面是php代码

PHP code
<?php
include("conn.php");

if($_POST['submit']){
$sql = "insert into……
[/Quote]

由于没有打开register_global=on;

因此$_POST[user]的表单元素变量名必须加''号,为 $_POST['user']

<?php
include("conn.php");

if($_POST['submit']){
$sql = "insert into message (id,user,title,content,lastdate) " .
"values('','".$_POST['user']".,'".$_POST['title']."','".$_POST['content']."',now())";

@mysql_query($sql) or die("fail");
}
?>
skyaspnet 2011-02-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 bone2 的回复:]
引用 6 楼 life169 的回复:
把 $sql = "insert into message (id,user,title,content,lastdate) " .
"values('','$_POST[user],'$_POST[title]','$_POST[content]',now())";
改成:

PHP code

$sql = "insert into mes……
[/Quote]

正确的做法应该是使用转义,拼接字符串有被注入的危险
ischeck 2011-02-11
  • 打赏
  • 举报
回复
到PHPmyadmin执行下你的数据库代码看看错误,确保执行无误,再用变量替换里面的数值
叫我陌北就好 2011-02-11
  • 打赏
  • 举报
回复
回复:9楼

不是因为中文字符的问题....

回复:LZ

原因很简单,你的user,title等等都是字符串,所以插入数据库的时候要加入引号的。
phper002 2011-02-11
  • 打赏
  • 举报
回复
这个其实简单。

记住 在sql中引用变量,就用'".某变量."'这种格式就行了。
老骥伏枥 2011-02-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 life169 的回复:]
把 $sql = "insert into message (id,user,title,content,lastdate) " .
"values('','$_POST[user],'$_POST[title]','$_POST[content]',now())";
改成:

PHP code

$sql = "insert into message (id,user,title……
[/Quote]

六楼好样的,原来是引号用了中文字符!!
类似错误坚决杜绝,分点分!!
Bone2 2011-02-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 life169 的回复:]
把 $sql = "insert into message (id,user,title,content,lastdate) " .
"values('','$_POST[user],'$_POST[title]','$_POST[content]',now())";
改成:

PHP code

$sql = "insert into message (id,user,title……
[/Quote]
哥们高手啊 果然是这么回事 能说说是咋个回事么?
life169 2011-02-10
  • 打赏
  • 举报
回复
如果还不正确 那lastdate就可能不是 整型
就得

$sql = "insert into message (id,user,title,content,lastdate) " .
"values('','$_POST[user],'$_POST[title]','$_POST[content]','".now()."')";

life169 2011-02-10
  • 打赏
  • 举报
回复
把 $sql = "insert into message (id,user,title,content,lastdate) " .
"values('','$_POST[user],'$_POST[title]','$_POST[content]',now())";
改成:

$sql = "insert into message (id,user,title,content,lastdate) " .
"values('','".$_POST['user']."','".$_POST['title']."','".$_POST['content']."',now())";

solu 2011-02-10
  • 打赏
  • 举报
回复
- -你是GET提交过来的吗?!
dhc_1229 2011-02-10
  • 打赏
  • 举报
回复
基本看不出问题来 把你错误警告发出来看看
Bone2 2011-02-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hellsb 的回复:]
没看出大的毛病,是不是values(''
第一个是ID自动增长列,如果是的话则不用写这个,把ID去掉,或者赋值为NULL
[/Quote]
是自增的,但是去掉也没用。。
[Quote=引用 2 楼 cunningboy 的回复:]
你还没有连接到数据库吧!
[/Quote]
测试是显示连接成功了,就两句话
 $conn = @mysql_connect("localhost","root","") or die("wrong"); mysql_select_db("bbs",$conn);
mysql_query("set names 'GBK'");
CunningBoy 2011-02-10
  • 打赏
  • 举报
回复
你还没有连接到数据库吧!
hellsb 2011-02-10
  • 打赏
  • 举报
回复
没看出大的毛病,是不是values(''
第一个是ID自动增长列,如果是的话则不用写这个,把ID去掉,或者赋值为NULL

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧