急,50分求解读取数据库的问题

jaspon 2004-12-06 11:59:39
数据库中的表table中的f_user_id类型是varchar
执行以下代码时
$ExeSQL="select * from table where f_user_id=".$user_id;
$ExeSQL1=(string)$ExeSQL;
$rs = $db->Execute($ExeSQL);

如果f_user_id在数据库中的数据都是数字,则执行没有错误,当数据库中的f_user_id中有例如"aaaa"的项时,则报

Warning: (null)(): Invoke() failed: 发生意外。 Source: Microsoft OLE DB Provider for ODBC Drivers Description: [Microsoft][ODBC SQL Server Driver][SQL Server]将 varchar 值 'aaaa' 转换为数据类型为 int 的列时发生语法错误。

其中$user_id是在URL传递过来的http://...php?user_id=aaa

请问我应该怎么处理$user_id才能保证执行读库操作的正常?我在代码里也没指定$user_id是int型啊
...全文
102 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
pomme 2004-12-06
  • 打赏
  • 举报
回复
顶:)
Cain 2004-12-06
  • 打赏
  • 举报
回复
呵呵

写程序的时候,注意一点就行了
jxflll 2004-12-06
  • 打赏
  • 举报
回复
因为$user_id是字符型,所以要加''号。

$ExeSQL="select * from table where f_user_id='".$user_id."'";
$ExeSQL1=(string)$ExeSQL;
$rs = $db->Execute($ExeSQL);
jaspon 2004-12-06
  • 打赏
  • 举报
回复
解决了
$ExeSQL="select * from table where f_user_id='$user_id'";
哈哈哈哈
jaspon 2004-12-06
  • 打赏
  • 举报
回复
直接写进SQL执行代码
$ExeSQL="select * from table where f_user_id=aaa";
$rs = $db->Execute($ExeSQL);

报错如下
Warning: (null)(): Invoke() failed: 发生意外。 Source: Microsoft OLE DB Provider for ODBC Drivers Description: [Microsoft][ODBC SQL Server Driver][SQL Server]列名 'aaa' 无效。

表中是存在“aaa”这项的

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧