草庐IT

PHP - 为什么新的 SQLSRV 驱动程序比旧的 mssql 驱动程序慢?

我有很多组件使用来自PHP的旧驱动程序mssql。我想切换到Microsoft的新驱动程序SQLSRV,但我的查询速度很慢。我有许多处理+400000行的进程。这是我对40000行的测试:testOldDriver_mssql=行40000:1秒testNewDriver_nonPDO=第40000行:7秒testNewDriver_PDO=行40000:4秒这是我最大的进程(+480000行):testOldDriver_mssql=行484856:27秒testNewDriver_nonPDO=行484856:120秒testNewDriver_PDO=行484856:47秒tes

php - 在 php.ini 文件中添加扩展条目后,sqlsrv 驱动程序不会出现在 WAMP 服务器 phphinfo() 上

我想建立一个从PHP到SQLServer2012的数据库连接。我在装有PHP5.5.12的Windows机器(64位)上设置了一个wamp服务器(64位),在同一台机器上我有SQLServer2012年安装。从official_link中提取的sqlsrv驱动程序将提取的驱动程序php_sqlsrv_55_ts.dll、extension=php_pdo_sqlsrv_55_ts.dll复制到php\ext文件夹,然后更改php.ini文件以包含扩展extension=php_sqlsrv_55_ts.dll;extension=php_pdo_sqlsrv_55_ts.dll;现在我

php - 在 WAMP 上为 PHP 安装 SQLSRV 扩展

我已经看过很多这样的帖子,并且通读了所有这些帖子,但我仍然无法运行SQLSRV扩展。你能帮我吗?我将在下面发布我拥有的所有信息:Windows764位WampServer2.232位PHP5.4.332位Apache2.2.22(无法判断是VC6还是VC9)MicrosoftSQLServer2012native客户端64位我下载了SQLSRV30.exe。我将dll文件解压到C:\wamp\bin\php\php5.4.3\ext。在我的php.ini中:extension_dir="c:/wamp/bin/php/php5.4.3/ext/"extension=php_sqlsrv

php - 没有从 sqlsrv_num_rows 得到任何返回

我正在尝试通过PHP页面从MSSQL中提取数据。我有一个有效的连接,我正在尝试一个简单的SELECT*FROMMyTable但无论我做什么,sqlsrv_num_rows都是空白!!!这是我的代码:functionconnect(){$serverName=DB_HOST;//serverName\instanceName$connectionInfo=array("Database"=>DB_NAME,"UID"=>DB_USER,"PWD"=>DB_PASSWORD);$this->connection=sqlsrv_connect($serverName,$connectionI

php - 使用 sqlsrv 将 php 7.2 连接到 MS SQL

我正在尝试通过我机器上的PHP建立并运行与MSSQL的连接。我正在运行IIS,安装了PHP7.2和MSSQLExpress2017。我的基本网页正在运行,但是当我单击打开PHP页面时,连接不起作用。session_start();echo"Hello";if(isset($_POST['submit'])){$_SESSION["server"]=$_POST['server'];$_SESSION["database"]=$_POST['database'];$_SESSION["username"]=$_POST['username'];$_SESSION["password"]=

php - 我应该使用 PHP 的 SQLSRV 函数吗?

我正在用PHP开始一个需要访问MSSqlServer的新项目。我知道PHP的手册没有关于旧的甚至已弃用的函数集的警告。MySQL扩展在任何时候都不要引用MySQLi扩展。SQLite扩展在任何时候都不要引用SQLite3扩展。所以我的问题是:我可以使用PHP的SQLSRV吗?职能?或者它们不是最先进的?我确实选择了它们,因为显然它们有MS支持。请注意,我不是要求推荐,只是如果我选择的是好的 最佳答案 据我了解SQLSRV函数实际上并不是PHP本身,因为它们是包的一部分maintainedbyMicrosoftoutsidethema

php - Microsoft 的 PHP sqlsrv 驱动程序在查询 "SELECT SCOPE_IDENTITY() AS id"时不返回任何结果

此查询使用php_mssql驱动程序工作正常:INSERTINTOTable(columnName)VALUES('text');SELECTSCOPE_IDENTITY()ASid;表确实有一个id列,这是一个标识。我将执行该查询,并获取表中的最后一个ID。如果使用Microsoft的php_sqlsrv驱动程序执行查询,则相同的代码将不起作用。我在执行查询(sqlsrv_query函数)时没有收到任何错误,但在调用sqlsrv_fetch_array时收到以下错误:“查询的事件结果不包含任何字段”我在谷歌上搜索了很多,没有找到答案,令我惊讶的是以前没有人遇到过这个问题,似乎没有人在

php - sqlsrv_num_rows 不返回任何值

我正在尝试获取查询中返回的行数。循环遍历结果的while循环有效,但由于某种原因,sqlsrv_num_rows不返回任何值:$result="SELECT*fromdtableWHEREid2='apple'";$query=sqlsrv_query($conn,$result);$row_count=sqlsrv_num_rows($query);echo$row_count;while($row=sqlsrv_fetch_array($query)){echo'yes';}谢谢。 最佳答案 这是因为sqlsrv_query()

php - 如何使用sqlsrv和 "?"样式参数在php中执行存储过程

我查看了其他几个看起来(从标题上看)与此相同的问题。但是,我的情况有点不同。以下工作(即我获得“成功”并且我的数据库执行了我在使用给定变量运行过程时所期望的):$sql="MyDB.dbo.myProcedure{$var1},{$var2},{$var3}";$result=sqlsrv_query($myConn,$sql);if(!$result){echo'Yourcodeisfail.';}else{echo'Success!';}我想通过使用参数创建SQL字符串来避免(或减少SQL注入(inject)的可能性)。例如:$sql="select*fromaTablewhere

使用SQLSRV_QUERY外部数据库在Codigniter上使用foreach的非法字符串偏移量

我正在尝试从外部SQL数据库中获取员工列表,我已经知道使用常规的PHP页面来获得此功能,但是我是新手CodeIgniter,我想尝试一下是否可以使用。因此,我的控制器.php看起来像这样。classPatientsextendsCI_Controller{functionindex(){$data['title']='Patients';$data['patients']=$this->Patients_model->get_patients();$this->load->view('templates/header');$this->load->view('patients/index',$