我知道我以前做过这样的事。我不知道为什么我要努力做这么简单的事情。
我想做的就是在逗号分隔的字符串中添加单引号。
php 进程最初看起来是这样的:
<?php
$checknumber = mysqli_real_escape_string($dbc,trim($_POST['checknumber']));
$splitnumber = preg_replace('/\n$/','',preg_replace('/^\n/','',preg_replace('/[\r\n]+/',"\n",$checknumber )));
$numbers = "'" . implode("', '", $splitnumber ) ."'";
echo $checknumber;
echo $splitnumber;
echo $numbers;
?>
结果如下所示:
// $checknumber
AMD111111,AMD222222,AMD333333
// $splitnumber
AMD111111,AMD222222,AMD333333
// $numbers
''
我需要 $numbers 的结果如下所示:
'AMD111111','AMD222222','AMD333333'
有趣的是我正在使用一段我之前用过的代码。所以我不知道为什么代码在这里不起作用。
implode() 函数需要一个数组作为第二个参数。 看起来您的 $splitnumber 只是一个简单的字符串,而不是应该是的字符串数组。 尝试使用explode()函数用逗号分割$splitnumber,并将结果放入implode函数中。
应该看起来像这样(未经测试):
$splitnumber = ...;
$splittedNumbers = explode(",", $splitnumber);
$numbers = "'" . implode("', '", $splittedNumbers) ."'";
可能有一个更干净的解决方案,只需将所有出现的 , 替换为 ','。
像这样添加 "'".$rows['AccountNumber']."";
您的内爆设置不正确。
$numbers = "'" . implode("','", $splitnumber) . "'";