php - MySQL 上的 SELECT 不适用于我的 PHP 脚本,但适用于 phpmyadmin

标签 php mysql select

我有一个带有 VARBINARY 257 的 MySQL 表来存储加密密码。我必须定期更新记录。在进行替换之前,我想使用我拥有的所有值进行选择。如果我找到一条记录,则不需要 REPLACE。这是因为我有一个带有“更新时 CURRENT_TIMESTAMP”属性的时间戳列来存储上次修改时间。当没有密码时它工作得很好,但即使所有值都相同,SELECT 也不起作用。如果我在 phpmyadmin 上使用相同的 SELECT,它就可以工作。我有一个函数来读取我尝试过 mysqli 函数和 PDO 类的记录:

mysqli:

function getMySQL($query, $pwd) {
    $link = mysqli_connect("localhost", "decisionrule", $pwd, "gateways");
    if (mysqli_connect_errno())
        return array(array('Connection error : '.mysqli_connect_error()));
    $result = mysqli_query($link, $query);
    $res = array();
    for ($i=0; $row = mysqli_fetch_array($result, MYSQLI_ASSOC); $i++)
        $res[$i] = $row;
    mysqli_free_result($result);
    mysqli_close($link);
    return $res;
}

PDO:

function getMySQL($query, $pwd) {
    try {
        $bdd = new PDO('mysql:host=localhost;dbname=gateways', "decisionrule", $pwd);
    }
    catch(Exception $e) {
        die('Erreur : '.$e->getMessage()."\n");
    }
    $res = array();
    $response = $bdd->query($query);
    while ($donnees = $response->fetch())
        $res[] = $donnees;
    $response->closeCursor();
    return $res;
}

针对我的问题返回一个空数组。

SELECT 示例:

SELECT name FROM partenaires WHERE gateway='GTWEIR01' AND name='ACCOLADE' AND proto_ident='ACCOLADE' AND protocol='SFTP' AND comments='ACCOLADE - SA0000026603841' AND login_ident='cofidisacco' AND login_password=0x014f4593f6e4360b4c4905da27e3a912e9e8f641ca96557ef1a7e7c10f44273d56c661107d1983d47a9f822e2e419c295b791dd4aed54fe57a4bcd44130f475c4673ec14d044ce208e84bd6a447161874746567e5446388883bbe3a3b8ddb75155488e8290fc5850cfcd776edf9994819e85d1fcec8b4ba3e02c2081a440172b AND dest_address='90.83.11.173/22' AND org_address='' AND dest_address_1='41.87.153.85/22' AND org_address_1='' AND dest_address_2='' AND org_address_2='' AND dest_address_3='' AND org_address_3=''

是否有可以更改的 SELECT 大小限制,因为它适用于 phpmyadmin?

版本:

RedHat 6
PHP 5.3.3
Apache 2.2.15
MySQL 5.1.73

谢谢

最佳答案

我找了好久,一整天都没有查出哪里出了问题。事情就是这么简单。我使用 RSA 公钥来加密密码,即使密码没有更改,加密每次都会产生另一个结果。所以我的 SELECT 无法成功。

对于浪费了您的宝贵时间,我深表歉意。

特别感谢 Shadow 和 Leet Hudka。

关于php - MySQL 上的 SELECT 不适用于我的 PHP 脚本,但适用于 phpmyadmin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51078574/

相关文章:

php - 使用 Resource 显示数据后分页不显示

php - MYSQL:带有 LIKE 的子查询

php - 插入前如何查询数据库

mysql - 使用多个条件 psql 更新表

MySQL从表中选择一个字段WHERE条件在多行中

php - 谷歌应用程序引擎[PHP] : Error trying to establish database connection

php - 多个账户的捐款总和(变量)

MySql - 如何选择发生警告的行?

mysql - GROUP CONCAT 的替代方案

php - 通过mysql select查询填充下拉列表