我有一个带有varbinary 257的mysql表来存储加密的密码。我必须定期更新记录。在将替换为之前,我希望使用所有值进行选择。如果我找到一张唱片,就不需要换了。这是因为我有一个带有“on update current\u timestamp”属性的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 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
谢谢
1条答案
按热度按时间mzmfm0qo1#
我找了很长时间,不止一整天,都没找到问题所在。很简单。我使用rsa公钥对密码进行加密,即使密码没有更改,每次加密都会有另一个结果。所以我的选择不会成功。
我必须为浪费你宝贵的时间而道歉。
特别感谢shadow和leet hudka。