数组$_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
查询,它们是不同的。那是因为我得到了空数组。