|
- <?php
- //输出一个表单
- echo "<form name="form2" method="post" action="http://127.0.0.1/phptest/query/1.php">
- 输入名字
- <input type="text" name="modify_name">
- <input type="submit" name="ModifySubmit" value="提交">
- <input type="reset" name="ModifyReset" value="重置">
- </form>";
- //根据表单提交的变量查询
- if(!$modify_name or $moify_name=""){
- $mod="addnew";
- }else{
- $mod="modify";
- echo $modify_name;
- $result = mysql_db_query($dbname,"select * from $table where mobname = $modify_name");
- $myrow = mysql_fetch_array($result);
- }
- ?>
复制代码
简单的说,就是我mysql_db_query函数里面的查询语句里 where field = $xxx 这里不能用变量,当变量值是中文或者英文的时候都查询不到数据库里已经有的内容,变量值是数字的话是正常的。where field="直接打中文还有字母"这样也是正常的。
详细情况出在 $result = mysql_db_query($dbname,"select * from $table where mobname = $modify_name"); 这句上,输入中文、英文查询都会出错,明明存在这个记录但是查询不到,输入数字查询正常,不用变量直接mobname=\"某个中文或者英文字母\"查询也是正常的。
换成用where mobname like $modify_name还是同样问题。
mobname字段用的类型mobname` varchar(15) NOT NULL default ''
本来以为可能是数据类型原因也改用过
mobname varchar(15) binary NOT NULL default ''
和mobname char(15) binary NOT NULL default ''
但是还是老问题。
换种查询方式SELECT * FROM table WHERE locate(mobname,$modify_name) > 0;问题依旧。
以为是我机器上php和mysql配置有问题,找了台商业空间的主机,还是一样的问题。
实在不知道是什么原因.......是不是我php写的有问题啊?大大们求教救命了! |
|