我需要对一个爆炸的字符串进行排序以写入数据库。
下面的代码可以正常工作,但是我无法检测到foreach循环之外的数组摘要。
所以$terms[0].$terms[1].$terms[2]
不正确。
因为示例$terms[0].$terms[1].$terms[2].$terms[3]
是字符串中4个术语所必需的。
怎么可以解决?
$terms = explode(";", "banana;apple;lemon");
sort($terms);
$length = count($terms);
for($x = 0; $x < $length; $x++) {
$terms[$x] = $terms[$x].'; ';
}
$sorted_terms = $terms[0].$terms[1].$terms[2]; // <<< should changed dynamically
$sql = mysqli_query($dbcon,"INSERT INTO mydatabase (terms) VALUES ('$sorted_terms')");
答案 0 :(得分:2)
使用与explode
完全相反的PHP implode
,仅用于此类事情。
$terms = explode(";", "banana;apple;lemon");
sort($terms);
$sorted_terms = implode(";", $terms);
//$sorted_terms = "apple;banana;lemon";
当您使用过程MySQLi进行数据输入时,您还应该使用mysqli_real_escape_string
将SQL注入限制在数据库中。我知道它可能不适用于您当前的工作,但它是最佳实践 - 没有实际使用准备好的陈述。
这样:
$sql = mysqli_query($dbcon,"INSERT INTO mydatabase (terms)
VALUES ('".mysqli_real_escape_string($dbcon, $sorted_terms)."')");
答案 1 :(得分:1)
只需使用字符串连接即可。 在for循环中使用$ terms1作为字符串。
isPrime = false;
答案 2 :(得分:0)
尝试$sorted_terms = implode(';', $terms);