在其他API网址中,我收到的用户ID如下:58988e75c918f5bd5804afd6
。
数据库的名称字段中存储的用户名格式为:
58988e75c918f5bd5804afd6 John
。
我当前获取此记录的SQL查询是:
$sql = 'SELECT * FROM users WHERE name LIKE :term';
$result = db_query($sql, array(':term' => db_like($userid)));
$existingUser = $result->fetchObject();
使用当前的SQL查询,即使我提供了部分用户ID(58988e75c918f5bd5804),它似乎也会获取John行,这不是我期望发生的事情。如何修复查询以使其与包含John?
的用户ID完全匹配预期结果:由于用户ID不完全匹配,因此无需检索记录。
更新:我获取记录,然后执行子串替换以更新Drupal表中的记录。
注意:随意修改sql查询以获得预期结果,不必使用LIKE
答案 0 :(得分:2)
在您喜欢的词语中使用空格: Include space in mysql like search
$sql = 'SELECT * FROM users WHERE name LIKE ":term "';
$result = db_query($sql, array(':term' => db_like($userid)));
$existingUser = $result->fetchObject();
最好用PHP验证字符串大小,然后像执行mysql一样。当您使用相同的加密方式时,您将获得相同数量的加密字符。