gpt4 book ai didi

php - SQL - 查询失败*除非*字符串被分解成数字和字母然后连接起来

转载 作者:行者123 更新时间:2023-11-29 06:31:42 24 4
gpt4 key购买 nike

我有以下 SQL 查询按 DocNumber 返回发票:

“SELECT * FROM Invoice WHERE DocNumber = '”。 $身份证。 "'"

这里,$id 包含一个字符串,如下例所示:

M10045
M10046
M10046

此查询失败除非我将$id 分成'M''10045' 并将它们连接起来在这样的查询中:

preg_match('/\d+/', $id, $id_number, PREG_OFFSET_CAPTURE);
preg_match('/[A-Z]+/', $id, $id_letter, PREG_OFFSET_CAPTURE);

"SELECT * FROM Invoice WHERE DocNumber = '" . $id_letter[0][0] . $id_number[0][0] . "'"

什么会导致这种问题?

请注意,在查询中使用 $id 会由于未找到匹配项而返回一个空数组。拆分 $id 的字母和数字部分会返回发票对象。

最佳答案

请试试

$id =  trim($id);

$id =  preg_replace('/[^\w]/', '', $id);
$query = "SELECT * FROM Invoice WHERE DocNumber = '$id'";

删除所有不是 AlphaNum 破折号或下划线的字符。

关于php - SQL - 查询失败*除非*字符串被分解成数字和字母然后连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27573030/

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