gpt4 book ai didi

php ctype_alpha 不适用于 mysql 数据库数据

转载 作者:行者123 更新时间:2023-11-28 23:12:59 26 4
gpt4 key购买 nike

我正在尝试从包含数字的自行车型号列表中过滤出结果,例如:“BAJAJ CT 100 ALLOY”。在使用 ctype_alpha() 检查数字结果之前,我使用 str_replace 删除空格。它似乎不起作用。我完全迷路了。这是我的 PHP 代码:

$query="SELECT * FROM vehicleList WHERE 1;";
$result=mysqli_query($db,$query);
if(mysqli_num_rows($result) != 0) {
$bikeListArr = array();
$carListArr = array();
while($row=mysqli_fetch_array($result)) {
if($row["type"] == "bike") {
// echo str_replace(' ','',$row["model"]) . "\n";
if(ctype_alpha(str_replace(' ','',$row["model"]))) {
array_push($bikeListArr,$row["id"],$row["model"],$row["category"]);
}
else echo $row["model"] . " -- DROPPED\n";
} else {
array_push($carListArr,$row["id"],$row["model"],$row["category"]);
}
}
// print_r($bikeListArr);
}

这是输出的一部分:

HERO HF DAWN KICKSTART -- DROPPED
HERO HF DELUXE -- DROPPED
HONDA DREAM NEO -- DROPPED
BAJAJ PLATINA -- DROPPED
HERO SPLENDOUR -- DROPPED

有趣的是下面传递的值:

"TVS STAR CITY PLUS","HERO PASSION X PRO","HERO GLAMOUR","HERO HUNK"

找不到问题所在。我将不胜感激。

最佳答案

终于找到问题的原因了。数据库表由一个 PHP 脚本填充,该脚本从 Windows 操作系统中的 .TXT 文件中读取行并提供“车辆列表”表的“模型”列。

你猜怎么着? Windows 操作系统中的记事本需要 \r\n 来表示换行符。 (来源:Windows notepad not supporting newline character '\n')。 PHP 只将 \n 字符识别为换行符,因此 \r 字符留在大多数行的末尾(仍然没有找到为什么所有行都没有有它..)。使用 trim() 进行简单更新在表格的所有行上都完成了工作,代码现在可以正常工作了。万岁!!

更新表格的代码片段:

$db=mysqli_connect("127.0.0.1","root","","mdb") or die("DB Timeout... Please try again");
$query="SELECT * FROM vehiclelist WHERE 1;";
$result=mysqli_query($db,$query);
while($row=mysqli_fetch_array($result)) {
$query1="UPDATE vehiclelist SET model=\"" . trim($row["model"]) . "\" WHERE id=\"" . $row["id"] . "\";";
$result1=mysqli_query($db,$query1);
}

$bikeListArr 数组的简单 var_dump() 显示了与“模型”值对应的字符串大小异常。

这真的是在浪费大家的时间。抱歉,我之前没看到。

感谢所有人的回答和时间。

关于php ctype_alpha 不适用于 mysql 数据库数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45124536/

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