亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP + MS SQL Server:嵌套存儲過程的行為與直接在數據庫上運行時不同

PHP + MS SQL Server:嵌套存儲過程的行為與直接在數據庫上運行時不同

PHP
蕭十郎 2022-12-23 12:22:05
不幸的是,由于我不能分享我公司的代碼,所以我會有點含糊,所以我提前道歉。我發現存儲過程(調用其他存儲過程)在我們的 MS SQL Server 數據庫中存儲員工的方式存在差異。當直接在數據庫上運行(使用我的 PHPStorm 控制臺)時,當嘗試添加任意數量的員工時,它會正確地添加他們。然而,當通過 PHP 運行時,實際上只插入了一個隨機數。我的 PHP 設置類似于:$con = sqlsrv_connect($host . ',' . $port, [    "Database" => $database,    "UID" => $user,    "PWD" => $password,    "ReturnDatesAsStrings" => true,    "CharacterSet" => "UTF-8"]);$sql = "EXEC EmployeeAdd '[{ json data here }]'"$stmt = sqlsrv_query($con, $sql);我也嘗試了 PDO 庫并看到了相同的結果。sqlsrv有沒有人在使用 PHP或PDO庫運行嵌套存儲過程時遇到問題?如果是這樣,你做了什么來解決這個問題?提前致謝。
查看完整描述

1 回答

?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

這好有趣!我們有一些print陳述導致了這個問題。刪除它們解決了問題,我能夠按預期導入員工。感謝您的幫助@Zhorov。

更多信息:默認情況下,PHP 設置WarningsReturnAsErrors為打開。因為 print 語句生成01000帶有錯誤代碼的警告#0,PHP 將其視為錯誤并立即停止執行。要在不刪除print語句的情況下解決此問題,您可以:

  1. 在 PHP 腳本中,設置

sqlsrv_configure("WarningsReturnAsErrors", 0);
  1. 更新您的 php.ini 以包含

sqlsrv.WarningsReturnAsErrors = 0


查看完整回答
反對 回復 2022-12-23
  • 1 回答
  • 0 關注
  • 99 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號