数组$_POST包含

(
[first_subcat] => А
[process_first_subcat_name_for_url] => 1
)


我知道在mysql中,列FirstSubtopicName的一个字段值是A(varchar字段)。

查询为

SELECT TopicName FROM topics WHERE FirstSubtopicName = ?
$stmt->execute( array( $_POST['first_subcat'] ) );


并获取空数组

但是这种查询有效

SELECT TopicName FROM topics WHERE FirstSubtopicName = ?
$stmt->execute( array( 'A' ) );


也可以

SELECT TopicName FROM topics WHERE FirstSubtopicName = 'A'


如果定义$_POST['first_subcat'] = 'A';也适用

试图更改为$stmt->execute( array( '\''.$_POST['first_subcat']. '\'' ) );清空。

尝试更改为'?'。也空着

我做错了什么?

发现这是因为А用非拉丁语编写(А用俄语写)。

А更改为А буква(进行检查),现在似乎可以正常使用。似乎在mysql中我有A作为拉丁字符,但是在POST中是俄语A ...

最佳答案

在我的情况下,原因如下

A-英文字母

А-用俄语写的字母(кириллица,例如С Д Ф Г Х等)

在mysql中,A是英文。但是在SELECT中,查询А是俄语。

两个A看起来都相同,但是对于SELECT查询,它们是不同的。那是因为我得到了空数组。

10-06 08:50