我有一个prepare语句,它根据我的数据库找到搜索条件,其中包含一个Articles表和Text和Title列。
// Get unique dates
dates = { c:[0,0] for a, b, c in mylist }
// Collect sum for the 1st and 2nd entries
for a, b, c in mylist:
dates[c][0] += float(a)
dates[c][1] += float(b)
我的问题是该语句只按标题搜索并完全忽略文本。
我尝试过这样但它有效,但我也需要标题
$stmt = $pdo->prepare('SELECT * FROM articles WHERE text OR title LIKE :search');
答案 0 :(得分:0)
您可以根据需要多次使用相同的占位符*。您只需使用正确的SQL语法。见下文:
$stmt = $pdo->prepare('SELECT * FROM articles WHERE text LIKE :search OR title LIKE :search');
// ^^^^^^^^^^^^
然后只需绑定一次:
$stmt->bindValue(':search', $searchTerm); // replace $searchTerm with your variable name
该值将填补这两个地方。
我假设您已经将%
添加到您正在绑定的变量中。
*来自PDO::prepare:
除非启用仿真模式,否则不能在预准备语句中多次使用同名的命名参数标记。
因此,只要启用仿真模式,就可以了。否则,您必须单独命名并绑定它们:
$stmt = $pdo->prepare('SELECT * FROM articles WHERE text LIKE :search1 OR title LIKE :search2');
$stmt->bindValue(':search1', $searchTerm);
$stmt->bindValue(':search2', $searchTerm);