这是我的问题:
什么是没有引号的PHP变量/字符串?下面是我写的代码并出错了:
$email = $_POST['email'];
$query = "DELETE FROM email_list WHERE email = $email";
正确的代码应该是:
$query = "DELETE FROM email_list WHERE email = '$email'";
所以,变量$ email不是没有引号的字符串,即使它是我在表单中输入的内容?
然后我用PHP编写了一个代码:
echo($email."<br />");
echo("$email" ."<br />");
结果在浏览器中结果相同。 那么为什么我要添加另一个单引号来封装$ email,而它已被双引号包围?
答案 0 :(得分:1)
写$email
和"$email"
输出相同。写"'$email'"
不会。
在最后一种情况下,您要在之前和之后添加单引号; SQL需要识别字符串。
如果SQL语言的创建者已经决定必须在#
之间包含字符串,那么如果希望SQL引擎识别字符串,则必须编写"#$email#"
。它与PHP如何处理或插入字符串无关;它与SQL有关。