标签: adodb-php

PHP中的ADOdb和PDO有什么区别?

两者似乎都试图在PHP中使用数据库使其更简单.两者似乎都提供了对MySQL,SQLite等不同数据库类型的抽象.

ADOdb和PDO之间有什么区别?

php pdo adodb-php

11
推荐指数
2
解决办法
1万
查看次数

使用Adodb for php/postgresql,在插入后返回行ID

当我插入一行时,它使用SERIAL递增ID字段.

如何在插入后立即返回新创建的ID号?

(数据库是Postgresql.)

php postgresql adodb-php

9
推荐指数
2
解决办法
1万
查看次数

PHP 已弃用:不推荐将 false 自动转换为数组 adodb-mssqlnative.inc.php 第 154 行

我们正在将 PHP 升级到版本 8.1。使用 MS Sql Server 数据库。一切似乎都正常工作,但我在日志文件中看到重复的消息:

[03-Feb-2022 11:51:18 America/New_York] PHP 已弃用:C:...\includes\adodb\drivers\adodb-mssqlnative.inc.php 第 154 行中已弃用 false 到数组的自动转换

我已将 adodb 更新到版本 5.22,但这并没有阻止消息记录。ini文件有

extension=php_sqlsrv_81_nts_x64.dll
extension=php_pdo_sqlsrv_81_nts_x64.dll
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?

php sql-server autovivification adodb-php php-8.1

8
推荐指数
1
解决办法
2万
查看次数

从doctrine中的表中检索所有行

我有10万多行的表,我想在教义中选择所有这些,并在每行中执行一些操作,在symfony2中使用doctrine我尝试使用此查询:

    $query = $this->getDefaultEntityManager()
        ->getRepository('AppBundle:Contractor')
        ->createQueryBuilder('c')
        ->getQuery()->iterate();

    foreach ($query as $contractor) {
        // doing something
    }
Run Code Online (Sandbox Code Playgroud)

但后来我得到内存泄漏,因为我认为它在内存中写入了所有数据.

当我这样做时,我在ADOdb中有更多的经验,在那个库中:

$result = $ADOdbObject->Execute('SELECT * FROM contractors');
   while ($arrRow = $result->fetchRow()) {
        // do some action
   }
Run Code Online (Sandbox Code Playgroud)

我没有任何内存泄漏.

那么如何从表中选择所有数据并且不会在symfony2中使用doctrine获取内存泄漏?

问题编辑

当我尝试删除foreach并且只是迭代时,我也会遇到内存泄漏:

$query = $this->getDefaultEntityManager()
            ->getRepository('AppBundle:Contractor')
            ->createQueryBuilder('c')
            ->getQuery()->iterate();
Run Code Online (Sandbox Code Playgroud)

php doctrine symfony doctrine-orm adodb-php

6
推荐指数
1
解决办法
9817
查看次数

ADOdb输出具有双精度值

从MySQL检索数据时,PHP的阵列输出具有两个数字和名称索引.我怎么能阻止这个?

我用fetch:

$stmt = $this->dbObj->Prepare($sql);
$rs = $this->dbObj->Execute($stmt);
if (!$rs) {
    trigger_error($this->dbObj->ErrorNo() . ' ' . $this->dbObj->ErrorMsg(), E_USER_ERROR);
}

$this->videos_voted = null;
while ($row = $rs->FetchRow()) {
    $this->videos_voted[$row['video_id']] = $row;
}
Run Code Online (Sandbox Code Playgroud)

输出:

Array
(
    [16] => Array
        (
            [0] => 16
            [video_id] => 16
            [1] => 1028
            [total_views] => 1028
            [2] => No
            [featured] => No
        )

)
Run Code Online (Sandbox Code Playgroud)

如您所见,输出具有数字和名称索引.

php mysql adodb-php

5
推荐指数
1
解决办法
1520
查看次数

ADOdb返回列名和数字索引

ADOdb fetchRow输出:

Array
(
 [0] => ABC
    [NAME] => ABC
    [1] => 33
 [AGE] => 33
    [3] => M
 [GENDER] => M
    [4] => LA
 [CITY] => LA
    [5] => OH
 [STATE] => OH
)
Run Code Online (Sandbox Code Playgroud)

如何获得仅数字索引输出:

Array 
(
 [0] => ABC
 [1] => 33
 [2] => M
 [3] => LA
 [4] => OH

) 
Run Code Online (Sandbox Code Playgroud)

或仅名称索引输出?:

Array
(
    [NAME] => ABC
    [AGE] => 33
    [GENDER] => M
    [CITY] => LA
    [STATE] => OH
)
Run Code Online (Sandbox Code Playgroud)

php adodb-php

4
推荐指数
1
解决办法
2208
查看次数

ADOdb给出"致命错误:无法通过引用传递参数2"

我使用ADOdb Execute函数:

$query = "select * from users where user_id = ? and PWD = ?";
$execute = $conn->Execute($query,array($username, $password));
Run Code Online (Sandbox Code Playgroud)

这给出了错误:

Fatal error: Cannot pass parameter 2 by reference
Run Code Online (Sandbox Code Playgroud)

我不知道为什么.有任何想法吗?

php adodb-php

3
推荐指数
1
解决办法
1857
查看次数

如何使用PHP ADOdb获取"字段名称"?

我正在使用PHP ADOdb,我可以得到结果集:

$result = &$db->Execute($query);
Run Code Online (Sandbox Code Playgroud)

如何从该行获取字段名称并循环它?

(如果重要,我正在使用访问数据库.)

php adodb-php

2
推荐指数
1
解决办法
2万
查看次数

php adodb MSSQL连接

我有一个linux服务器,我正在尝试使用php adodb连接到MSSQL服务器.

include('adodb5/adodb.inc.php'); 

$conn =& ADONewConnection('odbc_mssql');
$dsn = "Driver={SQL Server};Server=MSSERVER;Database=Northwind;";
$conn->Connect($dsn,'sa','password')or die("Unable to connect to server");
Run Code Online (Sandbox Code Playgroud)

我通过yum等安装mssql,我知道服务器可以连接到它,因为我尝试了以下内容:

$db = @mssql_connect("MSSERVER","sa","password") or die("Unable to connect to server");
mssql_select_db("Northwind");

// Do a simple query, select the version of 
// MSSQL and print it.
$version = mssql_query('SELECT @@VERSION');
$row = mssql_fetch_array($version);

echo $row[0];

// Clean up
mssql_free_result($version);
Run Code Online (Sandbox Code Playgroud)

任何想法为什么我的adodb不会连接,或任何关于如何连接的例子将非常感激.

php sql-server adodb-php

2
推荐指数
1
解决办法
2万
查看次数

PHP全局变量未导入会话处理程序

我正在使用ADOdb.由于某种原因,实际上$db没有在'write'函数中导入.

该函数用于导入$db实际值.相反,它将空值分配给$db:

<?php
// load ADODB class
include(DIR_WS_CLASSES . "adodb5/adodb.inc.php");

$db = NewADOConnection(DB_TYPE);
$db->Connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE);


class SessionManager {
    var $life_time;

    function SessionManager(){
        global $db;
        // Read the maxlifetime setting from PHP
        $this->life_time = get_cfg_var("session.gc_maxlifetime");

        // Register this object as the session handler
        session_set_save_handler(array(&$this, "open"), 
                                array(&$this, "close"), 
                                array(&$this, "read"), 
                                array(&$this, "write"), 
                                array(&$this, "destroy"), 
                                array(&$this, "gc"));
    }

    function open($save_path, $session_name){
        global $sess_save_path;
        global $db;

        $sess_save_path = $save_path;

        return true;
    }

    function close(){
        global $db; …
Run Code Online (Sandbox Code Playgroud)

php adodb-php

0
推荐指数
1
解决办法
1799
查看次数