2017-05-26 48 views
0

enter image description herePHP + SQL語法從各有不同的情況下,是沒有意義的

所以我得到了這個項目我正在使用PHP和條紋。一切都很好,但我無法理解PHP語法背後的邏輯及其變化。

正如你在圖片中看到的第一個更新的語法($ sqlInsertEvent)有這樣:EventID='.$EventID.''

但是其他的更新不具有完全相同的語法的工作,我們不得不改用此語法:ChargeID =''。$ ChargeID。'''

有人可以向我解釋爲什麼在相同的代碼中有相同的函數有兩種不同的語法?

+1

在這裏發佈真正的代碼不會像 –

+0

請張貼代碼! –

+0

「沒有工作」?請指定 – modsfabio

回答

1

:EventID='.$EventID.''意味着表字段是一個數字,它不需要引號。

ChargeID="'.$ChargeID.'"'意味着表字段爲varchar,並要求報價。

MySql Varchar Docs

0

的概念被稱爲concatenation of strings。與MySQL查詢中使用的兩種不同的情況分別是:

1. 'SELECT FROM TABLE WHERE column = ' . $id; // here column datatype is integer 

2. "SELECT FROM TABLE WHERE column = '" . $id . "'"; // here column datatype is varchar or date or enum. So we have to wrap it in single quotes. 
0

它看起來像ChargeID是一個字符串,因此查詢列時,需要加引號。在這兩種情況下,單引號都是爲了結束與變量連接的字符串。

雖然仍可以使用引號來查詢一個int!

0

第一SQL是

update xxx set xxx=xxx where EventId=123445; 

第二SQL是:

update xxx set xxx=xxx where ChargeId="kajfakjflajf"; 

首先是整數,而另一個是字符串

0

謝謝你的答案,循環,其餘的代碼工作,所以RBT和其他人有正確的答案,我不知道這是不同的語法,取決於varchar或int。

謝謝!現在非常有意義:)

相關問題