所以我的数据库中有很多有问题的值。 有两列,一列是电子邮件。有些电子邮件以这种方式存储“foo@foobar.com ,起始时的引号无用。我希望将其转换为 foo@foobar.com 。 同样,还有另一个称为company的字段,其中包含类似 stackoverflow“的数据,结尾处的引号也需要删除。
我已编写此代码,但由于某些原因,这并未删除引号。 我究竟做错了什么 ? 欢迎任何建议。
global $conn;
try
{
$statement= $conn->query("SELECT * from emails");
$statement->setFetchMode(PDO::FETCH_ASSOC);
while($rows = $statement->fetch())
{
$email=$rows['emailid'];
$company=$rows['company'];
$len = strlen($company);
if($email{0} == '"')
{
//problem at start
//fix there.
$updated = substr($email, 1);
//now update
try
{
$statement = $conn->prepare("UPDATE emails set emailid = :email where indexid = :indexid");
$statement->bindParam(':email',$updated);
$statement->bindParam(':indexid',$row['indexid']);
$statement->execute();
$statement->closeCursor();
return true;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
elseif($company{$len-1} == '"')
{
$updated = substr($company, 0, -1);
//now update
try
{
$statement = $conn->prepare("UPDATE emails set company = :company where indexid = :indexid");
$statement->bindParam(':company',$updated);
$statement->bindParam(':indexid',$row['indexid']);
$statement->execute();
$statement->closeCursor();
return true;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
else
{
echo "";
}
}
}
catch(PDOException $e)
{
echo $e->getMessage();
}
答案 0 :(得分:1)
你可以使用修剪:
trim($text, " \"'");
它从text
变量的开头和结尾删除空格和引号