搜索
首页 电脑/网络 程序设计 其他编程语言

求助:php写入mysql数据问题!

  我是个刚接触php和mysql的新手,在往数据库写数据的时候发现了下面的问题,还请各位高手给予指点迷津!多谢!我的mysql数据库中number表的结构由id,qihao和jianghao三个字段组成id字段定义为主键且自动增加1。qihao字段类型为varchar(4)jianghao字段类型为varchar(21) 我的php代码如下:";echo "jianghao变量的值为jianghao" 。
   "";$link=mysql_connect($server,$username,$passwd); //建立连接if(!$link) { die( "数据库连接失败!" ); //如果连接失败就终止程序并提示错误 }else { mysql_select_db($database,$link); //选择要操作的数据库 mysql_query($sql,$link); //执行sql语句 mysql_close($link); //关闭数据库}?>问题一: 当执行sql语句的时候,$jianghao变量的值在mysql中是030205而不是期望的03 02 05;问题二:如果把变量$jianghao的值改为'03,02,05',则程序执行完毕后,number表中没有添加任何记录,这是为什么我很奇怪!问题三:如果把变量$jianghao的值改为'03-02-05',则程序执行完毕后,number表中jianghao字段的值竟然是-4(负4),但是每次打印变量的值并没有问题。
  所以我很郁闷!另外:如果在命令行下执行sql语句,则问题二和问题三的情况都不会出现,就是说字段jianghao的值能够正确的为03,02,05 和 03-02-05 这说明mysql没有问题,可php代码我也看不出有什么不对劲的地方,真是伤透脑筋,请各位大侠帮帮忙,解决小弟的疑惑。
  多谢!!! 。

全部回答

2007-06-11

0 0
    你这个问题在不同版本的数据库下具体表现会有些不同,不过原因都是一样的,就是查询语句错误。 数据库需要的正确插入语句是: insert into number(qihao,jianghao) values ('35','03-02-05') 而你在php中实际提交的语句是: insert into number(qihao,jianghao) values (35,03-02-05) 结果03-02-05成为一个表达式求值(就是3减2减5),得到-4,转为varchar型就是-4这个字符了。
     你其他两组输入也存在同样的问题。 所以php中正确的语句应该是: $sql="insert into number(qihao,jianghao) values ('$qihao','$jianghao')"; 这样就不会有错了。
   另外,所有的mysql语句都应该检查错误,而不仅仅是mysql_connect。   。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
其他编程语言
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
程序设计
其他编程语言
VB
数据库
C/C++
汇编语言
JAVA相关
VC++
C#/.NET
其他编程语言
其他编程语言
举报
举报原因(必选):
取消确定举报