gpt4 book ai didi

c# - PHP 准备的语句 - 无法选择 Varchar 行,选择数字行没有问题

转载 作者:行者123 更新时间:2023-11-29 12:06:44 25 4
gpt4 key购买 nike

好吧,我这里遇到了一个非常奇怪的问题。我试图通过 PHP SELECT 一行,但由于某种原因它无法获取行数据!它在获取数字行或任何其他内容方面没有任何问题。

注意:我通过 C# WinForm 发送参数,这可能是问题的原因(排序规则或其他原因)吗?

$stmt_GetSalt = $con->prepare("SELECT Salt,Status FROM Accounts WHERE Email=?");
$stmt_GetSalt->bind_param("s", $email);
$stmt_GetSalt->execute();
$stmt_GetSalt->bind_result($salt, $status);
$stmt_GetSalt->fetch();
$stmt_GetSalt->close();

状态为int ,但返回值没有问题。盐是varchar但没有返回任何数据。这是怎么回事?

编辑:表中数据的 XML 表示形式。

<table name="Accounts">
<column name="Email">test@testmail.test3</column>
<column name="Password">65T6ANoLeSrBA</column>
<column name="Salt">65fe93d93e283f002beaca712fd178c6</column>
<column name="PIN">81dc9bdb52d04dc20036dbd8313ed055</column>
<column name="Status">0</column>
<column name="ID">5</column>
</table>

编辑 2: 修复了问题。我正在实例化$email绑定(bind)参数后。所以该语句试图绑定(bind)一个尚不存在的参数。我不应该在深夜编码。

最佳答案

我无法重现该问题

<?php
mysqli_report(MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('localhost', 'localonly', 'localonly', 'test');
setup($mysqli);
var_export( foo($mysqli, 'test@testmail.test3') );

function foo($con, $email) {
$stmt_GetSalt = $con->prepare("SELECT Salt,Status FROM soFoo WHERE Email=?");
$stmt_GetSalt->bind_param("s", $email);
$stmt_GetSalt->execute();
$stmt_GetSalt->bind_result($salt, $status);
$stmt_GetSalt->fetch();
$stmt_GetSalt->close();
return array('salt'=>$salt, 'status'=>$status);
}

function setup($mysqli) {
$mysqli->query('
CREATE TEMPORARY TABLE soFoo (
Salt varchar(32),
Status int,
email varchar(32)
)
');

$mysqli->query("
INSERT INTO soFoo (Salt,Status,email) VALUES
('65fe93d93e283f002beaca712fd178c6', 0, 'test@testmail.test3')
");
}

打印

array (
'salt' => '65fe93d93e283f002beaca712fd178c6',
'status' => 0,
)

正如预期的那样。

关于c# - PHP 准备的语句 - 无法选择 Varchar 行,选择数字行没有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31353979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com