我已经返回由DocNumber
发票下面的SQL查询:SQL - 查询失败*除非*字符串分解成数和字母,然后再连接
"SELECT * FROM Invoice WHERE DocNumber = '" . $id . "'"
这里,$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中没有新行/制表符? –
你的数据是什么样的? M和数字之间可能有空格 – Sparky
echo'count($ id);'?的返回值是什么? – Ragnar