[字号:  ]

如何把变量传入数据库

发布时间:2008-10-26 15:55   作者: rtbbs   信息来源: PHPChina 开源社区门户
大家好,我在写留言板的时候遇到一个问题,请求帮忙。
我新建了两个文件,一个是用户登录文件user_login.php,还有一个是用户留言文件user_add.php。
在user_login.php文件中,我通过
if(($name==$row[name])&&$pwd==$row[passd])
  {
echo "<script language=\"javascript\">location.href='user_add.php?
user=$name';</script>";
  }
这个判断语句将$name的值通过地址传递到user_add.php用户留言页面。
现在的问题是:
我在user_add.php文件中,可以读取到传过来的$name的值,但是将这个值写到数据库中,却写不上去。下面是我操作的语句。
include("conn.php");

echo"欢迎 ".$user." 的到访!";    //由注册成功页面地址传过来的姓名(这语句可以正常执行)
if($_POST['Submit'])  //判断提交按钮
{
  
        $svip=$_SERVER["REMOTE_ADDR"]; //获取客户端的ip地址
$sql="insert into userlist (id,name,title,content,ip,lastdate)  
values('','$user','$_POST[title]','$_POST[content]','$svip',now())"; //向数据表插入数据(其他字段都能正常写入,就是 name字段显示为空)
//指向插入语句
mysql_query($sql);
  echo "<script language=\"javascript\">location.href='user_list.php';</script>";
  
  }
其他字段例如(id,title)等都能正常写入到数据库。
请问:是不是变量不能在数据库写入语句中直接出现。还是????????

最新回复

showphp at 2008-10-26 16:48:06
1.把sql语句 echo 出来看看

2.查看数据 name 字段长度、类型。
xuexi_php at 2008-10-26 19:49:13
$sql="insert into userlist (id,name,title,content,ip,lastdate)  
values('','$user','$_POST[title]','$_POST[content]','$svip',now())";

id 设为自增
$sql="insert into userlist (name,title,content,ip,lastdate)  
values('$user','$_POST[title]','$_POST[content]','$svip',now())";
试试,还用echo $sql;调试看看sql输出有内容没有!
rtbbs at 2008-10-27 10:21:57
你好,我将name的类型设置成了 VARCHAR( 20 ) ,latin1_general_ci,问题还是存在的。
现在我又将$sql 用,echo书出来。它的结果是 insert into userlist (id,name,title,content,ip,lastdate) values('','111','','','',now())

里面有我传过来的数据。可是就是写不进数据库啊。数据库还是空的啊 。数据库其他字段都是正常写入,就是name这个字段是空的。是不是,传输变量到数据库需要特变的设置啊。
rtbbs at 2008-10-27 10:30:26
你好,问题还是存在的,我用的你方法试了啊,而且echo $sql输出语句里显示
insert into userlist (name,title,content,ip,lastdate) values(''111','333','333','127.0.0.1.',now())
可是在数据库里其他字段都正常显示,就是name字段还是为空。
ssfnadn at 2008-10-27 10:40:09
不知道你的NAME有没有确定存在,,从login传过来的只是一个显示值,但是你要插入到数据库中需要确定所提交的页面中有没有name存在,也就是session_name,我之前也碰到过类似的问题,,具体的忘了,很久了
rtbbs at 2008-10-27 23:22:57
session_name,怎么用啊