我尝试过以下变体:
$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/