我想在我的mysql数据库中选择一个包含以逗号分隔的值的字段(假设它是“dd,bb,ee”),这样就可以将它们分解并转换为数组。 但是,如果尝试这样做:
$sql = $conn->prepare("SELECT contacts FROM Users WHERE username = ?");
$sql->execute($usernametmp);
$oldcontacts = $sql->fetch(PDO::FETCH_COLUMN);
我收到此错误:
Warning: PDOStatement::execute() expects parameter 1 to be array, string
given in /.../.../.../.../.../....php
在执行行上,而如果我执行以下操作:
$sql = $conn->prepare("SELECT contacts FROM Users WHERE username = ?");
$sql->execute(array($usernametmp));
$oldcontacts = $sql->fetch(PDO::FETCH_COLUMN);
它可以工作,但是db条目作为一个包含“dd,bb,ee”的数组元素出现,它需要是一个字符串,以便我使用逗号作为分隔符对其进行爆炸
知道如何解决这个问题吗?
答案 0 :(得分:2)
我相信PDO #Password for the pfx file of the original cert
$password = ConvertTo-SecureString -String '<UPDATETHIS>' -AsPlainText -Force
#import the orginal cert with private key
Import-AzureKeyVaultCertificate -VaultName 'VaultName' -Name 'Certname' -FilePath 'PATHTOPFXFILE' -Password $password
#set the policy to allow key reuse if the CA will create a new signed cert from the existing CSR
Set-AzureKeyVaultCertificatePolicy -VaultName 'VaultName' -Name 'Certname' -ReuseKeyOnRenewal $true
#create a cert policy object from the existing cert
$certpolicy = Get-AzureKeyVaultCertificatePolicy -VaultName 'VaultName' -Name 'Certname'
#create a pending cert operation, you can pull a new CSR from this if need be
$certificateOperation = Add-AzureKeyVaultCertificate -VaultName 'VaultName' -Name 'Certname' -CertificatePolicy $certpolicy
#import the new signed cert into KeyVault for issuing
Import-AzureKeyVaultCertificate -VaultName 'VaultName' -Name 'Certname' -FilePath 'PATHTONEWSIGNEDCERTINCRT'
函数返回一个数组,而不是标量,即使该行包含单个列。
(我根本不熟悉fetch
函数的PDO::FETCH_COLUMN
样式。是否记录在某处?我认为该样式可以与fetch
函数一起使用但是那仍然会返回一个数组。)
PDO fetchAll
函数将返回标量,而不是数组。
参考:http://php.net/manual/en/pdostatement.fetchcolumn.php
(将绑定参数传递到fetchColumn
是一个单独的无关问题。)