PHP语法错误-选择位置

PHP语法错误-选择位置,php,mysql,Php,Mysql,我在PHP SELECT WHERE代码中犯了一个错误——这应该很简单,但我没有取得任何进展。 代码与SELECT FROM行一起使用,但与SELECT FROM WHERE`行不一起使用。 我已经花了几个小时没有运气了。 我尝试了不同的语法组合,但没有任何进展 $sql = "SELECT * FROM `customer_crm` WHERE `sales_agent` = '$username'"; //$sql = "SELECT * FROM `customer_cr

我在PHP SELECT WHERE代码中犯了一个错误——这应该很简单,但我没有取得任何进展。 代码与
SELECT FROM
行一起使用,但与SELECT FROM WHERE`行不一起使用。 我已经花了几个小时没有运气了。 我尝试了不同的语法组合,但没有任何进展

    $sql = "SELECT * FROM `customer_crm` WHERE `sales_agent` = '$username'";

    //$sql = "SELECT * FROM `customer_crm`"; /* this works*/

假设设置了默认字符编码,则可以使用来避免SQL注入。然而,使用a的注释实际上是这里最好的建议

但是,使用mysqli\u real\u escape\u字符串,您的SQL应该是这样工作的:

$sql = 'SELECT * FROM `customer_crm` WHERE `sales_agent` = "'.mysqli_real_escape_string($link,$username).'"';

您甚至可以尝试此查询


$sql=“从
customer\u crm
中选择*,其中
sales\u agent
=”“$username.”

它怎么不起作用?你期待什么?你得到了什么?您是否已验证
$username
是否具有所需的有效值?您是否在PHPMyAdmin之类的工具中运行此查询以查看查询是否有效?注意:使用prepared语句您的数据库中是否有符合给定依赖项的记录?回显
$sql
,并检查它是否为有效查询。我想您是sql注入的爱好者您认为注入是根本问题吗?如果是的话,你能告诉我们为什么吗?在纸上,他的SQL应该可以工作——但它很脆弱,所以是的,这是一个问题。但根本问题是,如果我不监督这里的任何事情,那就不是声明本身。。我不确定您是否可以在SQL中使用“”来转义字符串,但只是尝试了一下,它就工作了。感谢您的回复,但我不是在寻找注入问题的解决方案,而是在寻找语法问题的解决方案。这些是我尝试过的一些陈述。第二个有效。//$sql=“选择*自
customer\u crm
WHERE
sales\u agent
=”$username'//$sql=“从客户关系管理中选择*”//$sql=“从
customer\u crm
中选择*其中
sales\u agent
=”$username//$sql='SELECT*FROM
customer\u crm
WHERE
sales\u agent
='.mysqli\u real\u escape\u string($link,$username)。'”$sql=“从客户关系管理中选择*,其中销售代理=”“$username。””;你的陈述没有错。第二条语句只是从数据库中选择所有条目,而where子句没有生成任何匹配项(至少我猜是这样)。您应该真正关心注入问题,至少如果用户可以访问您的程序。但是,$username的值是多少?col sales_agent中是否有此用户名的条目?这会有什么变化?生成的查询将与原始代码中的查询相同