簡體   English   中英

使用PHP PDO將數組傳遞給SQL Server函數/存儲過程

[英]Pass array to SQL Server Function/Stored Procedure using PHP PDO

我已經到了絕對需要一種干凈的方法來安全地將列表/數組從php傳遞到SQL Server存儲過程和表值函數的地步。 根據Microsoft docs ,PHP SQL Server驅動程序仍然不支持表值參數。

另一個問題中 ,建議使用XML作為替代方案。

有沒有人有使用XML流和PHP PDO或其他干凈替代方法傳遞與TVP等效的代碼示例?

原始但萬無一失的解決方案是將其作為定界字符串傳遞,並在proc中使用SPLIT函數將字符串轉換為可以聯接到的表。

Google SQL SPLIT FUNCTION以獲取免費的剪切粘貼粘貼代碼。

您可以使用xml,但是更好,更緊湊的想法是使用JSON。

$myArray = array("thing 1", "thing 2", "thing 3");
$sql = $pdo->prepare("INSERT INTO `table` (`array_data`) VALUES (:myArray)");
$sql->execute(array(":myArray"=>json_encode($myArray)));

然后,當您從數據庫中拉回數據時,可以使用以下命令將其轉換回數組:

$myArray = json_decode($res['myArray'], true);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM