爱问知识人 爱问教育 医院库

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

首页

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

我是个刚接触php和mysql的新手,在往数据库写数据的时候发现了下面的问题,还请各位高手给予指点迷津!
多谢!

我的mysql数据库中number表的结构由id,qihao和jianghao三个字段组成
id字段定义为主键且自动增加1.
qihao字段类型为varchar(4)
jianghao字段类型为varchar(21)                           


我的php代码如下:
<?php

$database='test';            //mysql服务器基本信息
$username='root';
$passwd='123456';
$server=' ';

$qihao='35';                     //要写入的数据变量
$jianghao='03 02 05';     

$sql="insert into number(qihao,jianghao) values ($qihao,$jianghao)";    //写入数据的sql语句

//检查变量值
echo "qihao变量的值为qihao"  .  "

"; 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 18:20:31
      你这个问题在不同版本的数据库下具体表现会有些不同,不过原因都是一样的,就是查询语句错误。
    数据库需要的正确插入语句是:
    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。
       。

    E***

    2007-06-11 18:20:31

类似问题

换一换
  • 其他编程语言 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新资料 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 169-188
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):