我试过仍然无法输入中国文字进入该领域..插入字符中国到MySQL通过PHP和VBA
的URL看起来是这样的: http://xxx.xxx/AddCategory.php?CatID=0001&NameTC =石油& NameEN =石油公司%20Gases &随机= 1.401764E -02
它适用于URL,但我使用VBA通过php运行url来更新mysql,它不起作用。所以也许由于编码问题在VB或PHP?请指教!
在VBA中,我使用MSXLM2.XMLHTTP
Set oHttp = CreateObject("MSXML2.XMLHTTP")
If Err.Number <> 0 Then
Set oHttp = CreateObject("MSXML.XMLHTTPRequest")
MsgBox "Error 0 has occured while creating a MSXML.XMLHTTPRequest object"
End If
CATID | CatName_TC | CatName_EN
预计:
1001 |工业|工业
结果:
1001 | [Nothing] |工业
我使用Excel VBA将这些数据存储到3个变量中,并使用带有参数的php web插入到我的mysql中。我无法将中文字符插入数据库。我可以为CatID和CatName_EN做到这一点,但在字段CatName_TC上不加任何内容。
VBA代码:
Set oHttp = CreateObject("MSXML2.XMLHTTP")
If Err.Number <> 0 Then
Set oHttp = CreateObject("MSXML.XMLHTTPRequest")
MsgBox "Error 0 has occured while creating a MSXML.XMLHTTPRequest object"
End If
On Error GoTo 0
If oHttp Is Nothing Then
MsgBox "For some reason I wasn't able to make a MSXML2.XMLHTTP object"
Exit Function
End If
'Open the URL in browser object
On Error Resume Next
oHttp.Open "GET", sURL, False
oHttp.Send
oHttp.waitforresponse (10)
GetWebHTML =
oHttp.responseText
PHP代码:
$mysqli = new mysqli("site", "name", "pass", "db");
$CatID = isset($_GET['CatID']) ? htmlspecialchars($_GET["CatID"]) : NULL;
$NameTC = isset($_GET['NameTC']) ? htmlspecialchars($_GET["NameTC"]) : NULL;
$NameEN = isset($_GET['NameEN']) ? htmlspecialchars($_GET["NameEN"]) : NULL;
$stmt = $mysqli->prepare("INSERT INTO AACategory (AACatID, CatNameTC, CatNameEN) VALUES (?,?,?)");
// TODO check that $stmt creation succeeded
// "s" means the database expects a string
$stmt->bind_param("sss", $CatID, $NameTC, $NameEN);
$stmt->execute();
$stmt->close();
$mysqli->close();
我发现在浏览器中使用url是好的。所以它不会是MySQL的问题。通过vba并运行xmlhttp将网址传递给网页,然后无法添加。我想这是vba或php的编码问题。请帮忙 – Trader 2014-10-16 07:59:07