php - mysqli有时查询不到结果

标签 php mysql mysqli character-encoding

我编写此函数是为了从我的 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/

相关文章:

php - 在 PHP 类中设置 session

javascript - 同时删除多条记录时,如何创建具有多个 ID 号的警报?

mysql - 在MYSQL中,如何将一个数字除以 "-"分成3部分

php - 在 boolean 、mysqli_stmt::store_result 和 mysqli_stmt::close() 上调用成员函数 bind_param()

php - 检查属性是否存在 - 将 json 转换为 stdObject,然后将 value 或 null 插入 db

php - 如何在普通主机账户上安装 Propel?

php - 评论删除按钮不起作用

mysql - 如何在 Yii 中使用 MySQL DB 进行 EGmap 扩展

mysql - 连接到外部 MySQL 数据库错误 mysqli_connect() : (HY000/2003)

php - SQL 查询返回无意义的结果