我有以下代码:
$query = "SELECT tac FROM lte_modems WHERE tac = ?";
$check_name = $dbh->prepare($query);
$my_name = "Jo"
$check_name->execute($my_name);
my @result = $check_name->fetchrow_array();
Run Code Online (Sandbox Code Playgroud)
哪作得很好.我想更改SQL查询以获取以"Jo"开头的名称:即我的SQL查询应该是
$query = "SELECT tac FROM lte_modems WHERE tac LIKE '?%'";
Run Code Online (Sandbox Code Playgroud)
但这没有成功.任何帮助请?也许我需要逃避一些角色?
提前致谢
您需要%在参数中包含该内容.否则,当DBI为您处理时,您将获得额外的报价.
my $sth = $dbh->prepare( "SELECT tac FROM lte_modems WHERE tac LIKE ?" );
$sth->execute( $my_name . '%' );
Run Code Online (Sandbox Code Playgroud)
诀窍在于总是让DBI做所有引用而不是自己做任何事情.DBI不关心,如果占位符?是后一个等号=,一个LIKE或一个REGEXP或别的东西.它正确地转义引号并在必要时添加引号.你根本不想干涉它.
| 归档时间: |
|
| 查看次数: |
630 次 |
| 最近记录: |