草庐IT

Activerecord-odbc-adapter

全部标签

php - pdo-odbc 不适用于绑定(bind)值,nvarchar 和文本在等于运算符中不兼容

有一列url(nvarchar(200),notnull)setAttribute(PDO::ATTR_PERSISTENT,false);$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);//plainsqlquery:WORKSFINE!$sth=$pdo->prepare("SELECTCOUNT(*)FROMpaginaWHEREurl='/webito'");$sth->execute();//usingbindValue:ERROR!$sth=$pdo->prepare("SELECTCOUNT(*)FRO

php - 连接到 MS SQL 数据库时出现 PDO 错误 "Adaptive Server is unavailable"

我正在尝试连接到在Windows服务器上运行的SQL服务器数据库。我在Linux服务器(centos7)上运行此PHP代码。我正在使用以下pdo连接字符串连接到数据库。$db=newPDO("dblib:192.168.2.1;dbname=TestDB","username",'pass');当我运行代码时,出现以下异常。带有消息“SQLSTATE[HY000]无法连接:AdaptiveServer不可用或不存在(严重性9)”的“PDOException”我已尝试使用tsql测试连接,我能够毫无错误地连接到数据库。以下代码为我提供了TestDB中所有表的列表。如果我没有先输入useT

php - yii2 以其他名称将 ActiveRecord 属性作为 JSON 返回

当我选择ActiveRecord时$models=Model::find()->select(['someothername'=>'name'])->all();并将这个“someothername”作为公共(public)属性添加到模型中,然后我可以访问它$model->someothername但是现在我需要用JSON返回这个字段\Yii::$app->response->format=\yii\web\Response::FORMAT_JSON;return$models;我该怎么做?我应该在属性中添加“someothername”吗? 最佳答案

php - 使用 PHP 通过 ODBC 运行 MSSQL 存储过程(并返回结果)

我的工作是将我们所有的PHPWeb应用程序从我们的Windows生产Web服务器迁移到专门用于PHP应用程序的新Linux服务器环境。棘手的部分是,我们正在运行的几个PHP应用程序正在使用MSSQL数据库,因此所有的数据库连接都必须重新编写以使用unixODBC/FreeTDS,因为Linux上的PHP不支持mssql_connect()并且它是相关的功能。我已断开连接,基本查询执行正常。我遇到的问题是运行存储过程,并通过ODBC复制mssql_init()/mssql_bind()/mssql_execute()功能。我正在处理的问题领域如下:$sp=mssql_init('sp_S

php - 将日期参数绑定(bind)到准备好的语句时出错——将 PHP PDO/ODBC 与 SQL Server 一起使用

我有一个与ODBC(v2000.86.359.00)连接到SQLServer(v8.00.2039SP4标准版)数据库的pdo连接。这个有效:$id=486;$duedate='June27,2012';$query="INSERTintoAssetHistory(AssetID,DateDue)Values($id,$duedate);";$noParams=$db->exec($query);$db->query($query);但是如果我尝试使用这样的准备好的语句:$sql='INSERTintoAssetHistory(AssetID,DateDue)Values(:id,:d

PHP PDO ODBC - 数据类型在等于运算符中不兼容

我似乎无法让带有参数的简单WHERE子句起作用,我不断收到一条错误消息:[Microsoft][ODBCSQLServerDriver][SQLServer]Thedatatypesvarchar(max)andtextareincompatibleintheequaltooperator.(SQLExecute[402]atext\pdo_odbc\odbc_stmt.c:254)我已经以多种不同的方式尝试过这个查询,例如未命名:$query=$DBH->prepare("SELECTTOP1*FROMbksb_ResourcesWHEREResourceType=?");$quer

php - MSSQL WHERE 子句中的 CASE - odbc 错误

在我的PHPWeb应用程序中,我试图完善逻辑,即用户定义的值组装一个Transact-SQL查询以过滤该值。然后使用ODBC驱动程序执行查询。复杂的是过滤只会在派生字段上进行。除非派生字段是使用CASE表达式创建的字段,否则这绝对可以正常工作。因此,例如,我有一个派生字段,如下所示:CASEWHEN[text_result]ISNOTNULLTHEN[text_result]ELSECASEWHEN[last_event]=1THEN'processed'ELSE'unprocessed'ENDEND如果我尝试使用值“未处理”来过滤它,那么最终组合的查询显然类似于以下内容:SELECT

php - 使用 PHP -> ODBC -> MS SQL 插入 Unicode 字符?

我有以下代码:$sql="updatetbl_testsetcategory=N'resumé';echo$sql;$rs=odbc_exec($conn,$sql);其中$conn是到MSSQL服务器的DSNODBC连接。问题似乎是PHP和MySQL(也许是ODBC?)之间的某个地方unicode字符被转换为垃圾。如果我将echo中的内容直接复制粘贴到EnterpriseManager中,它会很好地插入到MSSQL中。但是,如果我运行代码,它总是以resumé的形式进入MSSSQL。知道我在这里缺少什么吗? 最佳答案 问题不在于O

php - FileMaker 11 PHP 和 ODBC 换行/回车

我正在使用ODBC连接连接到FileMakerPro11Server。我正在从eBayAPI导入一些信息。当我从ebay收到地址时,它包含两个字段address1和address2。在FileMaker数据库中,我们只有一个地址字段。我试图用PHP用换行符或回车符分隔两个地址,但它似乎从来没有用过。我会尝试插入:"$var1\n$var2"并且FileMaker会将\n读取为普通文本。\r也一样。我也试过设置字符串:也没有成功。我还尝试了我阅读的用于换行符的饼图符号,但它不能以这种方式工作。所以基本上..我怎样才能插入filemaker可以使用phppdo和odbc理解的换行符?

PHP odbc_result() 似乎在 5.5+ 中为 varchar 字段返回随机未初始化的内存;在 5.4 中工作的相同代码

我正在使用ODBC连接来检索Windows服务器上的数据。将PHP从5.4升级到5.6(以及5.5)后,所有varchar字段似乎都返回随机未初始化的内存,尽管字符串长度与被查询字段的长度匹配。例如,在5.4中返回字符串“Test.txt”的查询在5.5+中返回以下内容:我已经比较了两个版本之间的php.ini设置,它们在与字符集和ODBC设置相关的具体内容方面似乎是相同的。我可以同时在同一个ODBC资源上并排运行两个版本并获得这些结果。日期和整数等非varchar字段打印正确。我只是运行从http://windows.php.net/download下载的x86线程安全php.exe