首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
PHP
基础编程
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
通过变量组成sql语句报错
[已结贴,结贴人:iloveora]
加为好友
发送私信
在线聊天
iloveora
iloveora
等级:
可用分等级:
贫农
总技术专家分:
4
总技术专家分排名:
265763
揭帖率:
71.43%
发表于:
2008-04-22 20:34:48
楼主
php调用Mysql数据库:
function getNum($testnum)
{
//连接数据库语句省略
$query = "select * from t_table where col= $testnum";
$result = mysql_query($query,$db);
$num = mysql_num_rows($result);
echo "num:".$num;
mysql_close($db);
return($num);
}
$result = getNum($thatnum) ;
col为bigint型。
调用getNum报错mysql_num_rows(): supplied argument is not a valid MySQL result resource in 。。。
如果sql里的变量加上单引号,变为$query = "select * from t_table where col= '$testnum'";就不报错,但是找不到数据(表里字段都不为空)。
如果调用时不传变量,直接传进去个常量$result = getNum('252366') ;也不报错,而且能取到数据。
怎么回事啊?研究了一天没弄明白,哪位达人帮帮忙吧!
问题点数:
20
回复次数:
8
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
kising
http://www.25years.com.cn
等级:
可用分等级:
乞丐
总技术专家分:
50
总技术专家分排名:
124430
发表于:
2008-04-22 20:41:10
1
楼 得分:
5
这么拼接试试看呢
$query = "select * from t_table where col=" + $testnum;
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
jackyzsy2008
普通英雄
等级:
可用分等级:
贫农
总技术专家分:
353
总技术专家分排名:
42893
发表于:
2008-04-22 21:06:17
2
楼 得分:
0
对,就这样试试
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ten789
北京求职
等级:
可用分等级:
富农
总技术专家分:
2728
总技术专家分排名:
8144
发表于:
2008-04-22 21:56:00
3
楼 得分:
15
SQL语句要写规范
$sql = "SELECT * FROM `t_table` WHERE `col`='$testnum'";
如果查询出错 应该输出语句 到MYSQL工具中执行 测试
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
iloveora
iloveora
等级:
可用分等级:
贫农
总技术专家分:
4
总技术专家分排名:
265763
发表于:
2008-04-22 22:14:42
4
楼 得分:
0
我把$query打印到页面上是没错的。在mysql客户端执行也没问题
引用楼主 iloveora 的帖子:
php调用Mysql数据库:
function getNum($testnum)
{
//连接数据库语句省略
$query = "select * from t_table where col= $testnum";
$result = mysql_query($query,$db);
$num = mysql_num_rows($result);
echo "num:".$num;
mysql_close($db);
return($num);
}
$result = getNum($thatnum) ;
col为bigint型。
调用getNum报错mysql_num_rows(): supplied argument is not a valid MySQL result res…
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
iloveora
iloveora
等级:
可用分等级:
贫农
总技术专家分:
4
总技术专家分排名:
265763
发表于:
2008-04-22 22:16:01
5
楼 得分:
0
+号是javascript的写法吧?
我曾改成$query = "select * from t_table where col=" .$testnum;
没有用。
引用 1 楼 kising 的回复:
这么拼接试试看呢
$query = "select * from t_table where col=" + $testnum;
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ten789
北京求职
等级:
可用分等级:
富农
总技术专家分:
2728
总技术专家分排名:
8144
发表于:
2008-04-22 22:22:20
6
楼 得分:
0
把数据结构和 $query打印结果 贴上来看看
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ten789
北京求职
等级:
可用分等级:
富农
总技术专家分:
2728
总技术专家分排名:
8144
发表于:
2008-04-22 22:34:48
7
楼 得分:
0
别贴了 刚发现 变量作用域问题 把连接句柄设置成全局变量就好了
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
iloveora
iloveora
等级:
可用分等级:
贫农
总技术专家分:
4
总技术专家分排名:
265763
发表于:
2008-04-23 09:12:46
8
楼 得分:
0
确实是sql出了错。结贴谢谢各位
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友