Когда вы знаете имя столбца, который вы возвращаете в наборе результатов, вы можете привязать результат к выходной переменной - что, на мой взгляд, делает работу более приятной.
if (!$stmt = $conn->prepare("SELECT name FROM test1 WHERE test2 = ?")) {
echo "Prepare Syntax Error"; // $conn->error
} elseif (!$stmt->bind_param("s", $test) || !$stmt->execute() || !$stmt->bind_result($name)) {
echo "Statement Error"; // $stmt->error
} else {
$stmt->fetch();
var_export($name); // this will show the value or NULL
}
Или, если вы не хотите связывать значение результата с переменной:
...
} elseif (!$stmt->bind_param("s", $test) || !$stmt->execute() || !$result = $stmt->get_result()) {
echo "Statement Error"; // $stmt->error
} elseif (!$row = $result->fetch_row()) { // No need to use assoc() keys
echo "empty result";
} else {
var_export($row[0]); // access the first column value
}