PHP+;SQL语法因情况而异,毫无意义

PHP+;SQL语法因情况而异,毫无意义,php,mysql,sql,Php,Mysql,Sql,所以我得到了这个我正在用PHP和Stripe进行的项目。一切都很好,但我无法理解PHP语法背后的逻辑以及它是如何变化的 如图所示,第一个更新语法($sqlInsertEvent)的语法如下所示::EventID='.$EventID'. 但是另一个更新没有使用完全相同的语法,我们必须使用以下语法:ChargeID=“”.$ChargeID.”“ 有人能解释一下为什么同一个函数在同一个代码中有两种不同的语法吗 :EventID='.$EventID'.表示表格字段是数字字段,不需要引号 Charg

所以我得到了这个我正在用PHP和Stripe进行的项目。一切都很好,但我无法理解PHP语法背后的逻辑以及它是如何变化的

如图所示,第一个更新语法($sqlInsertEvent)的语法如下所示:
:EventID='.$EventID'.

但是另一个更新没有使用完全相同的语法,我们必须使用以下语法:ChargeID=“”.$ChargeID.”“

有人能解释一下为什么同一个函数在同一个代码中有两种不同的语法吗

:EventID='.$EventID'.
表示表格字段是数字字段,不需要引号

ChargeID=“”.$ChargeID.”“
表示表格字段为varchar,需要引号


这个概念被称为字符串的
串联。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.

ChargeID看起来是一个字符串,因此在查询列时需要引号。在这两种情况下,单引号用于结束字符串,以便与变量连接

尽管您仍然可以使用引号来查询int

第一个sql是

update xxx set xxx=xxx where EventId=123445;
第二个sql是:

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

第一个是整数,另一个是字符串,谢谢你的回答,循环和其余的代码都可以工作,所以RBT和其他人都有正确的答案,我不知道这是不同的语法,取决于varchar或int


谢谢大家!!现在有了完美的解释:)

在这里发布真实代码,而不是图片请发布代码!“没用”?指定pleaseEdited更新您的代码,如下所示
优惠券=“TRUE”
。谢谢@modsfabio@Nawin这行不通,他已经对查询字符串使用了