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

时间:2017-05-26 09:20:13

标签: php mysql sql

enter image description here

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

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

但是其他更新无法使用完全相同的语法,我们不得不使用它: ChargeID =“'。$ ChargeID。'”'

有人可以向我解释为什么同一个函数在同一个代码中有两种不同的语法?

5 个答案:

答案 0 :(得分:1)

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

ChargeID="'.$ChargeID.'"'表示表字段为varchar且需要引用。

MySql Varchar Docs

答案 1 :(得分: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.

答案 2 :(得分:0)

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

虽然您仍然可以使用引号来查询int!

答案 3 :(得分:0)

第一个sql是

update xxx set xxx=xxx where EventId=123445;

第二个sql是:

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

首先是整数,另一个是字符串

答案 4 :(得分:0)

谢谢你的答案,循环和其余的代码工作,所以RBT和其他人有正确的答案,我不知道它是不同的语法取决于varchar或int。

谢谢!现在具有完美的意义:))