我正在使用Wampserver,Crimson编辑器和the New Boston tutorials学习SQL。在我更改引号之前没有任何作用:
使用SQL命令,常规“单引号”不起作用,但weird slanty quotes
可以。
使用表单和$_GET["name"];
时,只有双引号才有效。
知道这里发生了什么吗?我使用英国键盘,但视频辅导员也是如此,他使用$_GET['name'];
单引号。
编辑:示例代码:
if(isset($_GET["sortBy"])&&!empty($_GET["sortBy"]) ) // only works with "full" quotes
{ $sortBy = $_GET["sortBy"];
echo "sortBy works <br><br>";
}
$topTenResult = "SELECT `name`,`intuition`,`bravery`,`romance` FROM `scores` ORDER BY $sortBy DESC";
// does not work with default keyboard single quotes
答案 0 :(得分:2)
在SQL中,单引号标记字符串。
在MySQL中,后引号标记'分隔标识符'。这些名称区分大小写或与关键字冲突。后引号是MySQL独有的; MS SQL Server对同一作业使用方括号。两者都是非标准扩展。
在标准SQL中,双引号用于标记分隔标识符。除非进入符合标准的模式,否则某些DBMS会将双引号视为标记字符串;有些人会自动将它们视为分隔标识符。
答案 1 :(得分:2)
这是嵌套引号的症状。
.... " ... $_GET["name"] ...
上面的错误是因为$ _GET在双引号字符串中。因此,搜索虚假的双引号,这会使您的代码出错。
也许语法着色有帮助(就像在NetBeans IDE中一样,有很好的PHP支持)。