[技術討論] 請教PHP 載入MYSQL資料問題

想請教PHP MYSQL高手的一個問題, CODE如下

//將資料寫入資料庫
$sql = "Insert Into maintitle (姓名, Email, 主題, 內容, 篇數, 發言日期) Values (";
$sql = $sql . chgStr($_REQUEST["姓名"]) . ",";
$sql = $sql . chgStr($_REQUEST["Email"]) . ",";
$sql = $sql . chgStr($_REQUEST["主題"]) . ",";
$sql = $sql . chgStr(nl2br($_REQUEST["內容"])) . ",";
$sql = $sql . 0 . ",'";
$sql = $sql . date("Y-m-j H:i:s") . "')";
mysql_query($sql);

在學習PHP中的新手0, 想請教紅色'的用法是什麼意思? 希望有高手能指教在下, 感謝!

本帖最後由 jasonfoknxu 於 2014-12-20 16:37 編輯

回覆 1# bloodshadow


   係要用
'
黎包住個 data(string)[你個情況係 date]~
上面果啲 $_REQUEST 都應該要,不過你個 chgStr function 可能已經整左

INSERT INTO table_name (column1,column2,column3,...) VALUES ('value1','value2','value3',...);

TOP

本帖最後由 bloodshadow 於 2014-12-20 16:54 編輯

回覆 2# jasonfoknxu
非常感謝師兄出手相助,
還有些問題要請教師兄
$sql = $sql . chgStr(nl2br($_REQUEST["內容"])) . ",";
$sql = $sql . 0 . ",'";

咁其實綠色的" 係點解要用? 唔用會點? 再次感謝

TOP

回覆 3# bloodshadow


    綠色的 " 係 PHP 用黎包住個 string,PHP 可以用雙引號或單引號黎包住個 string,但你段 code 用左單引號黎包住 SQL,所以要用雙引號黎包住 PHP string~

TOP

咁師兄係咪即係
由呢個雙引號包SQL到(";
$sql = $sql . chgStr($_REQUEST["姓名"]) . " - 這個雙引號咁?
而呢個單引號係因為雙引號已經包了date()呢個STRING所以要用單引號再包SQL? '"; $sql = $sql . date("Y-m-j H:i:s") . "')

TOP

回覆 5# bloodshadow

由呢個雙引號包SQL到(";

依句唔明

簡單黎講:
PHP 可以咁寫:~
$variable = "This is a string"; //雙引號 work
$variable2 = 'This is a string too'; //單引號都 work
/* MySQL in PHP example */
$sql = "INSERT INTO maintitle (name, email, title, content)
VALUES ('bloodshadow', 'a@hkepc.com', 'This is title', 'This is content')";
// 紅色為包住 PHP string
// 藍色為包住 MySQL string

如果:
$_REQUEST["姓名"] = "NAME";
$_REQUEST["Email"] = "EMAIL";
$_REQUEST["主題"] = "TITLE";
$_REQUEST["內容"] = "CONTENT";

你段 code run 出黎會係:
Insert Into maintitle (姓名, Email, 主題, 內容, 篇數, 發言日期) Values (NAME,EMAIL,TITLE,CONTENT,0,'2014-12-20 07:00:58')

TOP

TOP

明白了, 謝謝各位幫助

TOP