解決php呼叫帶輸出引數的MySQL返回中文時亂碼

2021-05-27 00:14:53 字數 1356 閱讀 1314

0【錯誤經過】:呼叫mysql儲存過程時,需要根據傳入引數判斷後輸出一段中文字串變數,結果php獲取後顯示為"??????,???!".

【儲存過程】:

delimiter //

create procedure p__user_reguser(

out strmessage varchar(1000),

in stralias varchar(100),

in strpwd varchar(100)

)begin

set strmessage = '';

if not exists(select * from _user where username = stralias) then

begin

insert into _user(username, password, activeflag, createtime)

values(stralias, strpwd, 0, now());

end;

else

begin

set strmessage = '使用者已存在,請重試!';

end;

end if

end;

//

【php**】:

try ','')", $conn) or die("query failed:".mysql_error());

$result = mysql_query("select @message",$conn);

$row = mysql_fetch_row($result);

$message = $row[0];

if($message != '')

else

} catch (exception $e)

【處理過程】:

1. 先後檢查表、字段、儲存過程的編碼方式,發現皆是utf-8。

2. 先後查詢關於phpmyadmin、mysql workbench等關於設定編碼格式的資料,未果。

3. 嘗試傳入freebsd上測試,結果顯示正常!!這難道和win7+iis7.5有關?十分不解

結果暫時在開啟連線串後加入以下三句以強制轉換,結果顯示正常,-_______-!!!!!等晚上在win7上裝個apache, 在測試下!

mysql_query("set names 'utf8'"); 

mysql_query("set character_set_client=utf8");

mysql_query("set character_set_results=utf8");

c 呼叫帶輸出引數的儲存過程

c 呼叫帶輸出引數的儲存過程。先給出乙個例項,用 說話。首先在sql server中編寫乙個儲存過程 csharp view plain copy create procedure progetpwd username varchar 20 password varchar 20 output as...

9 呼叫http api的姿勢 帶引數呼叫

func callapi s selector.selector 使用生成的pb檔案中的結構體作為引數封裝到請求體中 var resp models.prodlistresponse 這裡使用生成的response物件,客戶端只需要傳入這個就可以了,無需關心服務端返回什麼格式,因為服務端已經用rpc...

執行帶輸出引數的儲存過程

declare msg varchar 100 exec submitinfo 34342 90782528352907 0,1,kf01 msg output select msg msg 為返回的資訊 儲存過程一部分 alter proc dbo submitinfo name varchar ...