我编写此函数是为了从我的 MySQL 数据库中读取数据。这在大多数情况下都有效,但如果遇到带有元音变音符或“”之类的字符的行,它将返回“0 个结果”。
function leseAntwort($FrageID, $AntwortID){
$sql = "SELECT antwort_text FROM antwort WHERE frage_id=$FrageID AND id=$AntwortID";
$result = connect()->query($sql);
if ($result->num_rows > 0) {
$antwort = $result->fetch_row();
connect()->close();
return $antwort[0];
} else {
connect()->close();
return "0 results";
}
}
[更新]
我试过了,结果没有区别。
function leseAntwort($FrageID, $AntwortID){
$frage=$FrageID;
$antwort=$AntwortID;
global $mysqli;
if ($stmt = $mysqli->prepare("SELECT antwort_text FROM antwort WHERE frage_id=? AND id=?")){
$stmt->bind_param("ii", $frage, $antwort);
$stmt->execute();
$stmt->bind_result($d);
$stmt->fetch();
return $d;
$stmt->close();
$mysqli->close();
} else {
echo "Error";
}
}
最佳答案
您的 SQL 语句中有 SQL 注入(inject)。 PLZ 使用准备好的语句 http://php.net/manual/de/mysqli.quickstart.prepared-statements.php 之后,您可以在参数中使用 utf-8 字符。
关于php - mysqli有时查询不到结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50090648/