Ms SQL Server 2008 มีฟังก์ชั่นใดใน php ที่สามารถเพิ่มเครื่องหมาย ' (single quote) ไว้หน้าเครื่องหมาย ' ที่มีอยู่เดิมในข้อความบ้างครับ
เขียนฟังก์ชั่นมาทำการ escape string ก่อนครับ ถ้าเป็น mysql ใช้ mysql_real_escape_string ได้เลย
Date :
2011-04-01 12:15:50
By :
PlaKriM
ขอบคุณมากครับท่าน PlaKriM ที่ให้ความรู้ครับ
Date :
2011-04-01 13:46:45
By :
tutc12
ขออนุญาตถามต่ออีกนิดนึงครับท่าน
ฟังก์ชั่นที่จะนำมาทำการ escape string ดังกล่าวที่ท่านหมายถึงนั้น คือฟังชั่นที่ทำหน้าที่เพิ่มตัว ' เข้าไปอีกตัวนึง เมื่อตรวจพบตัวอักษรที่เป็น ' (อันนี้ผมเข้าใจถูกต้องไหมครับ)
ถ้าเป็นเช่นนั้น ฟังก์ชั่นที่ว่าก็ต้องวนลูปเช็คตัวอักษรแต่ละตัวว่าตัวใดเป็น ' ก็ให้เพิ่ม ' เข้าไป แบบนี้ใช่ไหมครับท่าน...
ขอความกรุณาชี้แนะอีกซักครั้งครับท่าน
Date :
2011-04-01 13:58:18
By :
tutc12
Code (PHP)
function quote_escape($str) {
return preg_replace("/'/",''',$str);
}
Date :
2011-04-01 22:56:10
By :
PlaKriM
ใช้ function php ชื่อ str_replace โดยการ replace ' ให้เป็น '' (' 2 ตัว ครับ)
Code (PHP)
$fix_str = str_replace("'","''",$sql);
มีแบบ function ให้ใช้ด้วยครับ
Code (PHP)
<?php
function sqlEscape($sql) {
$fix_str = stripslashes($sql);
$fix_str = str_replace("'","''",$sql);
$fix_str = str_replace("\0","[NULL]",$fix_str);
return $fix_str;
}
?>
เอา function sqlEscape ไปครอบได้เลยครับ
Code (PHP)
$strSQL = "INSERT INTO customer ";
$strSQL .="(CustomerID,Name,Email,CountryCode,Budget,Used) ";
$strSQL .="VALUES ";
$strSQL .="('".sqlEscape($_POST["txtCustomerID"])."','".sqlEscape($_POST["txtName"])."','".sqlEscape($_POST["txtEmail"])."' ";
$strSQL .=",'".sqlEscape($_POST["txtCountryCode"])."','".sqlEscape($_POST["txtBudget"])."','".sqlEscape($_POST["txtUsed"])."') ";
$objQuery = mysql_query($strSQL);
Go to : ปัญหาการ ADD ข้อมูลลงฐานข้อมูล MS SQL Server ที่มีเครื่องหมาย ( ' ) Single Quotes
Date :
2011-04-22 17:01:46
By :
webmaster
Load balance : Server 03