php - 如果我不绑定(bind),则查询有效,但当我绑定(bind)时,查询会失败。我的错误在哪里?

标签 php mysql pdo

我尝试过以下变体:

$prep_get_company=$connection->prepare("SELECT * FROM sl_customer WHERE company_name = ':company_name'");
$prep_get_company->bindParam(':company_name',$company_name);

我没有得到任何结果,但如果我这样做:

$prep_get_company=$connection->prepare("SELECT * FROM sl_customer WHERE company_name = '$company_name'");

它返回我想要的结果。 $company_name 的内容是一个带有空格的字符串。

最佳答案

删除查询中的单引号:

SELECT * FROM sl_customer WHERE company_name = ':company_name'

应该是:

SELECT * FROM sl_customer WHERE company_name = :company_name

单引号会将其视为文字值,这将使您准备好的语句无法绑定(bind),因为它认为使用单引号时没有任何内容可以绑定(bind)。

准备好的语句将根据需要自行安排您绑定(bind)到它的数据。

关于php - 如果我不绑定(bind),则查询有效,但当我绑定(bind)时,查询会失败。我的错误在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23061914/

相关文章:

php - 使用php从字符串中删除撇号

php - 选择要运行的数据库连接

php - 如果没有结果,MySQL 回退查询

php - 使用动态字段名称将数据保存在mysql中

php - 如何保护我的 php 代码在加载页面时不自动执行

php - 如何在 Firefox 中使用 php curl 发送推送消息

mysql - 仅当我有不同的 ID 时如何求和?

php - 使用 mysql LIKE 查询获取多行。在 mysql 中有效,但在 php 中无效

php - Utf-8 字符显示为 ISO-8859-1

php - PDO PHP bindParam() 重复使用相同的参数