首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >php ctype_alpha不适用于mysql数据库数据

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

Stack Overflow用户
提问于 2017-07-16 02:54:25
回答 1查看 78关注 0票数 1

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$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);
}

下面是输出的一部分:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
HERO HF DAWN KICKSTART -- DROPPED
HERO HF DELUXE -- DROPPED
HONDA DREAM NEO -- DROPPED
BAJAJ PLATINA -- DROPPED
HERO SPLENDOUR -- DROPPED

有趣的是,传递了下面的值:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"TVS STAR CITY PLUS","HERO PASSION X PRO","HERO GLAMOUR","HERO HUNK"

找不到哪里不对劲。如果有任何帮助,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2017-07-16 08:58:58

我终于找到了问题的原因。数据库表由一个PHP脚本填充,该脚本从Windows的.TXT文件中读取行,并将"vehiclelist“表中的"model”列提供给它。

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

用于更新表的代码片段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$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()”值的字符串大小的异常。

这真的是浪费每个人的时间。很抱歉我之前没能看到这一点。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45124536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文