gpt4 book ai didi

php - 为什么只有一些 mysqli 查询有效?

转载 作者:行者123 更新时间:2023-11-29 19:45:51 24 4
gpt4 key购买 nike

我遇到了 mysqli 选择查询的问题。我正在使用的表称为参与者并具有以下字段:

id int(11) AI PK
name varchar(255)
surname varchar(255)
birth varchar(32)
sex varchar(32)
email varchar(255)
telephone varchar(32)
club varchar(255)
startingGroup int(2)

这是一个 PHP 文件(称为 select.php):

$connection = mysqli_connect("localhost", "$user", "$pass", "$db_name");

$query = "SELECT id, name, surname FROM participant WHERE NOT 0";

if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

if (!mysqli_query($connection, $query)) {
printf("Errormessage: %s\n", mysqli_error($connection));
}

$result = mysqli_query($connection, $query);
$arr = array();
if(mysqli_num_rows($result) != 0) {
while($row = mysqli_fetch_assoc($result)) {
$arr[] = $row;
}
}
mysqli_close($connection);
echo $json_info = json_encode($arr);

稍后由 AngularJS 调用:

$http.post("select.php").success(function(data){
console.log(data);
$scope.newparticipants = jsonFilter(data);
console.log($scope.newparticipants);
});

第一个 console.log 返回的值是“未定义”,第二个“”返回的值是“未定义”。当我更改查询以仅选择“id”时,整个过程正常并且数据可见。你猜为什么会这样?

最佳答案

数据库中出现了一些以utf8_general_ci编码的变音符号。我不知道发生了什么,因为有些查询响应正确,有些则不然。从特定范围中选择 ids 我收到了正确的结果。选择旁边的范围 - 我变得不确定。我发现很难检测到问题出在编码上(只有某些行包含这些变音标记)。

如果您遇到类似情况 - 检查您的数据库是否有一些非标准编码。如果是这样,请在打开数据库连接后在代码中定义它,例如:

(程序风格)

mysqli_set_charset($connection,"utf8");

(面向对象)

$mysqli->set_charset("utf8")

感谢大家尝试解决此问题。

关于php - 为什么只有一些 mysqli 查询有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40984141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com