嗨,我有一个名为$sql
的字符串,
* FROM users WHERE users.id = '390'
(举例来说,可以是任何东西)
在我的函数中,我有一个$sql
变量,它是上面的字符串。我希望摆脱*
之前的FROM
。我的变量$star
确实输出了*
,但是如何编码$sql
变量以排除其前面的*
字符?
$sql = $this->pdoquery($a, $v);
$star = substr($sql, 1, 2);
$query = "DELETE " . $sql;
我无法更改$sql
变量以在pdoquery
函数中忽略它,因为我将其用于SELECT
等。
答案 0 :(得分:1)
要删除任何前导字符,可以使用php函数ltrim。
$sql = ltrim($sql, "*");
var_dump($sql); // Output: string(34) " FROM users WHERE users.id = '390'"
根据您的更新进行编辑:
由于您无法修改原始变量,因此只需执行以下操作即可:
$without_star = ltrim($sql, "*");
var_dump($sql); // Output: string(35) "* FROM users WHERE users.id = '390'"
var_dump($without_star); // Output: string(34) " FROM users WHERE users.id = '390'"
答案 1 :(得分:0)
如果只想删除星号“ *” 您可以在代码中替换以下行:
$star = substr($sql, 1, 2);
具有:
$star = str_replace('*',"",$sql);
//this will remove all asterisk
如果只需要替换首次出现的'*',请使用:
$star = preg_replace('/\*/', '', $sql, 1);