2014-10-06 42 views
0

我试过仍然无法输入中国文字进入该领域..插入字符中国到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(); 

回答

0

表可能已被使用默认字符集latin1,而不是utf8创建。虽然无法将CatNameTC列中的现有值转换为utf8,但您可以更改新插入的表以使用utf8字符集

ALTER TABLE AACategory CONVERT TO CHARACTER SET utf8; 
+0

我发现在浏览器中使用url是好的。所以它不会是MySQL的问题。通过vba并运行xmlhttp将网址传递给网页,然后无法添加。我想这是vba或php的编码问题。请帮忙 – Trader 2014-10-16 07:59:07