不确定如何回显 mysql 中的选定数据

Not sure how to echo out the Selected data from mysql

$stmt = $mysqli->prepare("SELECT `nameData` FROM `accountsDone` WHERE `nameToSearch` = ?");
$stmt->bind_param("s", $query);
$stmt->execute();
$stmt->store_result();
if ($stmt->affected_rows > 0) {
    echo "Exists";
}

我不想回显 Exists,而是希望它回显 nameData。我该怎么做呢?

首先,如果您只需要 一行 ,则将 LIMIT 1 附加到您的 SELECT 查询,如下所示:

$stmt = $mysqli->prepare("SELECT `nameData` FROM `accountsDone` WHERE `nameToSearch` = ? LIMIT 1");

所以有两种显示方式 nameData:

方法(1):

首先将变量$nameData绑定到prepared statement,然后将结果fetch到这个绑定变量中。

$stmt = $mysqli->prepare("SELECT `nameData` FROM `accountsDone` WHERE `nameToSearch` = ? LIMIT 1");
$stmt->bind_param("s", $query);
$stmt->execute();
$stmt->store_result();
if($stmt->num_rows){
    $stmt->bind_result($nameData);
    $stmt->fetch();
    echo $nameData;
}else{
    echo "No result found";
}

方法(2):

首先使用get_result()方法从prepared statement中获取结果集,然后使用fetch_array从结果集中获取结果行。

$stmt = $mysqli->prepare("SELECT `nameData` FROM `accountsDone` WHERE `nameToSearch` = ? LIMIT 1");
$stmt->bind_param("s", $query);
$stmt->execute();
$result = $stmt->get_result();
if($result->num_rows){
    $row = $result->fetch_array()
    echo $row['nameData'];
}else{
    echo "No result found";
}

我认为您可以使用下面的代码,我希望您的查询工作正常 returns 结果正确,然后您可以使用下面的代码。

$stmt->bind_result($nameData);
    if ($stmt->fetch()) {
                printf ("%s\n", $nameData);
            }

请注意 affected_rows 在这里不会做任何有用的事情。
但是,您也不需要 num_rows(因此也不需要 store_result)

$stmt = $mysqli->prepare("SELECT `nameData` FROM `accountsDone` WHERE `nameToSearch` = ?");
$stmt->bind_param("s", $query);
$stmt->execute();
$stmt->bind_result($nameData);
$stmt->fetch();
echo $nameData;

考虑到所有这些麻烦,即使没有无用的函数,您可能会发现 PDO 是一种更好的方法:

$stmt = $pdo->prepare("SELECT `nameData` FROM `accountsDone` WHERE `nameToSearch` = ?");
$stmt->execute($query);
echo->$stmt->fetchColumn();