不确定如何回显 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();
$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();