Q - ถามเรื่องการ UPDATE INSERT ข้อมูล sql server ครับ ว่าแบบ Function กับ แบบทั่วไป แบบไหนปลอดภัยกว่า

เกี่ยวกับ ปัญหาการใช้งาน การติดตั้ง ฐานข้อมูล MySql Oracle MSSQL ect...
การเขียน คำสั่ง SQL เพื่อดึกข้อมูล บอร์ดนี้ควรระบุโครงสร้างตารางของท่านในคำถามด้วยนะ

Moderator: mindphp

User avatar
nuattawoot
PHP VIP Members
PHP VIP Members
Posts: 2559
Joined: 05/06/2017 9:34 am

Q - ถามเรื่องการ UPDATE INSERT ข้อมูล sql server ครับ ว่าแบบ Function กับ แบบทั่วไป แบบไหนปลอดภัยกว่า

Post by nuattawoot » 23/09/2018 3:48 pm

ถามเรื่องการ UPDATE INSERT ข้อมูล sql server แบบไหนปลอดภัยกว่ากัน หรือ 2แบบที่บอกมานี้มันต่างกันตรงไหน
ปลอดภัย คือกันการเจะข้อมูล
แบบที่ 1
UPDATE หรือ INSERT ข้อมูลเข้า sql server แบบตรงๆ เลย

Code: Select all

function rename($newname, $CharID) {
$query = $this->pdo->prepare("UPDATE UsersChars SET Gamertag=:Gamertag WHERE CharID=:CharID");
            $query->bindValue(":CustomerID", $this->CustomerID);
            $query->bindValue(":Gamertag", $newname);
            $query->bindValue(":CharID", $CharID);
            $query->execute();}
แบบที่ 2
ยิงข้อมูลเข้า Function ของ sql server /Navicat

Code: Select all

function rename($newname, $CharID) {
 $connectionInfo = array("Database" => $dbName, "UID" => $userName, "PWD" => $userPassword, "MultipleActiveResultSets" => true, "CharacterSet" => "UTF-8");
            $conn = sqlsrv_connect($serverName, $connectionInfo);

            $sql = "{call [dbo].[Test_CharRename](?, ?, ?)}";
            $in_CharID = $CharID;
            $in_CustomerID = $this->CustomerID;
            $in_Gamertag = "$newname";
            $params = array(
                array($in_CustomerID, SQLSRV_PARAM_IN),
                array($in_CharID, SQLSRV_PARAM_IN),
                array($in_Gamertag, SQLSRV_PARAM_IN),
            );
}
Code Function ที่ใช้รับข้อมูล
Image

Code: Select all

ALTER PROCEDURE [dbo].[Test_CharRename]
	@in_CustomerID int,
	@in_CharID int,
	@in_Gamertag nvarchar(64)
AS
BEGIN
	SET NOCOUNT ON;

	--	
	-- note: all checks was performed in Test_CharRenameCheck	
	--

	-- rename
	declare @OldGamertag nvarchar(64)
	select @OldGamertag=Gamertag from UsersChars where CharID=@in_CharID
	update UsersChars set Gamertag=@in_Gamertag, CharRenameTime=GETDATE() where CharID=@in_CharID

	-- and log
	insert into DBG_CharRenames values (GETDATE(), @in_CustomerID, @in_CharID, @OldGamertag, @in_Gamertag)
	
	select 0 as ResultCode
END
First Bug Love you
Image

Return to “SQL - Database”

Users browsing this forum: No registered users and 4 guests