[Microsoft][ODBC Driver 11 for SQL Server][SQL Server]列名 'user1' 无效

唉,还是自己对php执行sql语句运用不熟练。。。。

我的错误代码是这样的,(解决办法在最后)

$re=sqlsrv_query($conn, "select * from visitor where username = ".$name);
$row = sqlsrv_fetch_array($re);
if (is_null($re) || !$re) {
        print_r(sqlsrv_errors());
}

一开始只有前两行,然后报错,通过 sqlsrv_errors() 输出错误原因,进行排查,因为此函数结果为array,所以用 print_r() 输出,然后显示()

    [0] => Array
        (
            [0] => 42S22
            [SQLSTATE] => 42S22
            [1] => 207
            [code] => 207
            [2] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]列名 ‘user1‘ 无效。
            [message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]列名 ‘user1‘ 无效。
        )

注意,$name的值为$_SESSION[‘name‘]="user1",是个字符串类型吧

然后,我的user1明明是变量,为什么报错是列名呢,我的表里当然没有叫“user1”的列。

然后,差点被百度的结果蒙蔽了双眼。。。终于看到一个人说写一个不加where的查询语句看看

然后,没问题,嗯, $sql = "select * from visitor where username = ‘user1‘";

这样也没错,所以,,,,难道是少了user1的两边的单引号?

所以 $sql = "select * from visitor where username = ‘".$name."‘";

终于不报错了!!!

为什么是这样呢,一开始我就是以为$name是字符串,然后sql语句的条件where *** = 字符串,没啥问题,

写着写着博客才明白了(写这篇文章之初我还不知道为啥。。)

$sql = " XXXXXXXXXX ".$name 相当于$sql = "XXXXXX  user1",这个user1跟sql语句融为一体,不分你我。。。所以这个变量还是需要用单引号括起来区分一下的

$sql="select * from visitor where username = ‘".$name."‘";//注意单引号把变量括起来
$re=sqlsrv_query($conn, $sql);

好了问题解决,数据库大作业真烦人,,而且,我当初为啥给自己定的方向是php+sql server.................(主要后悔用sql server了)

自作孽不可活

此博文系作者原创,转载请注明来源~

[Microsoft][ODBC Driver 11 for SQL Server][SQL Server]列名 'user1' 无效

原文地址:https://www.cnblogs.com/zcl843264327/p/10987278.html

时间: 2024-08-05 05:19:59

[Microsoft][ODBC Driver 11 for SQL Server][SQL Server]列名 'user1' 无效的相关文章

linux-mint 下添加 ODBC DRIVER

搬运自https://code.google.com/p/odbc/wiki/InstallingMicrosoftDriverOnDebianLinux,做了些小修改 安装必要的 odbc library sudo apt-get install libodbc1 下载微软的sql driver for Red Hat 6(Dibian也可以用,只是需要做些调整) wget http://download.microsoft.com/download/B/C/D/BCDD264C-7517-4

[IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

Problems meet in the project: [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序((IM002) [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified): This error is typically throwm because the code is specify a DSN

连接SQLServer2005失败--[Microsoft][ODBC SQL Server Driver][DBNETLIB]一般性网络错误。请检查网络文档

连接SQLServer2005失败,错误信息: 错误类型:Microsoft OLE DB Provider for ODBC Drivers (0x80004005)[Microsoft][ODBC SQL Server Driver][DBNETLIB]一般性网络错误.请检查网络文档. 我的连接字符串是:driver={SQL Server};Server=192.168.10.139;database=TestFax;Uid=sa;pwd=xxxx; 奇怪的是,我将Server处写(loc

PowerDesigner反向数据库时遇到[Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句。SQLSTATE = 37错误解决方法

逆向工程中,有时会出现如下错误 ... [Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句 SQLSTATE = 37000 解决方案: 1.选择菜单栏中的Database -> Change Current DBMS ,给DBMS选择SQL Server2005. 2.重新配置ODBC连接,管理工具 -> 数据源ODBC -> 在用户DSN Tab选项中点添加 ->出现创建新数据源的选择框口,拖动滚动条到最下方,选择SQL

[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或访问被拒绝

一般连接sql数据库,IP_connstr="driver={SQL Server}; server=127.0.0.1;database=数据库名字;uid=sa;pwd=密码" 这样写没错,一般情况下不会出错,但如果出现 “[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或访问被拒绝” 其原因就是能从百度中搜索找到的,其中这个需要你注意: 其实很简单,把server=127.0.0.1的127.0.0.1改为 打

[Oracle][ODBC SQL Server Driver][SQL Server]对象名 'RECOVER.HS_TRANSACTION_LOG' 无效(转)

原帖由 qingyun 于 2010-6-21 15:44 发表 在写pl/sql的时候,有个很重要的注意点:比如:begin  update  某个sqlserver的表@dblink名字 .....;  update 某个oracle的表...;end; 这段pl/sql执行会报错:错误信息是:-----------------------------------------------------------------执行失败:ORA-02054: 事务处理 2.12.27634 有问题

java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序解决方法

开发程序需要登录功能 ,就不想用大数据库,直接用java连接access.     在自己机器上一切正常,  url直连 和配置数据源都没有问题.  发布到windows server2008 上 ,获取不到数据连接.      系统都是64位, office是2010  32位.     问题找了半天,最终得以解决: 32为的Access driver 需要用32为的jdk才能调用, 于是重装成与自己机器上一样的32位jdk,  连接成功,问题解决.      配置数据源不会刻意搜一下. ja

如何在linux服务器部署Rstudio server,配置ODBC远程访问win 服务器上的SQL server

如何在linux服务器部署Rstudio server,配置ODBC后通过RODBC包远程访问SQL server 背景介绍:之前写过一篇文章,提到近期要部署Rstudio server(搭建数据分析团队的分析环境),花了一个星期,搭好了.还YY过给这个亲生的儿子起个装逼的名字呢,莫扎特,巴赫什么的,并YY出以下场景{Jenny ,你把模型扔到莫扎特上跑一版最新结果出来...啊哈是不是特有逼格..哦哈哈...}我是部署的Rstudio server,这个是免费的,但是Rstudio sererv

java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配

java数据库连接(JDBC-ODBC方式) 环境:win7 64位和NetBeans IDE 7.1.2  jdk1.7.0_17(64位) 写好程序后运行报错:java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配. 注意:win7 64位配置数据源,控制面板->管理工具打开数据源(ODBC)会找不到驱动程序,因为是64位操作系统,但是安装的是32位的office.需要在路 径"C: