我正在构建一个基本函数,它根据数组中的数量来构建Mysql WHERE子句.
$array = array('id' => '3', 'name' => 'roger');
$sql = "SELECT * FROM table WHERE ";
foreach ($array as $k => $v) {
$sql .= $k . ' = ' . $v . ' AND ';
}
Run Code Online (Sandbox Code Playgroud)
哪个会输出
SELECT * FROM table WHERE id = 3 AND name = roger AND
但显然我不想要最后一个AND,我该如何从字符串中删除它?
谢谢
Cas*_*Chu 12
你可以做到
$sql = substr($sql, 0, -5);
Run Code Online (Sandbox Code Playgroud)
但也许更优雅的解决方案是
$array = array('id' => '3', 'name' => 'roger');
$clauses = array();
foreach ($array as $k => $v)
$clauses[] = $k . ' = ' . $v;
$sql = "SELECT * FROM table WHERE " . implode(' AND ', $clauses);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
648 次 |
| 最近记录: |