将 php 数组值插入数据库
Insert php array value into database
我正在开发这个标签系统。我正在尝试将主题标签词放入新行的数据库中。对于每个标签词,我都需要将其插入到新行中。
下面是我的 php 行代码...
$string = filter_var("#hello #world", FILTER_SANITIZE_STRING);
preg_match_all('/(?<!\w)#\w+/', $string, $matches);
foreach ($matches as $key => $value) {
$stmt = $mysqli->prepare("INSERT INTO hash_tag (tagged_word) VALUES (?)");
$stmt->bind_param("s", $value);
$stmt->execute();
}
这样做不会向数据库中插入任何内容,但是当我将 $value
替换为 $value[0]
时,它会输入第一个 #hello
.
我想将 #hello
和 #world
作为新行输入到数据库中。
提前致谢。
请更改 foreach 循环:
foreach ($matches as $key => $value) {
到
foreach ($matches[0] as $key => $value) {
因为,$matches
是一个多维数组,我们正在尝试访问它的第 0 个和第 1 个元素,它们也是数组而不是字符串。
如果我们尝试访问 $matches
的第一个子数组,它将完美运行。
所以,最终的代码是:
<?php
$string = filter_var("#hello #world", FILTER_SANITIZE_STRING);
preg_match_all('/(?<!\w)#\w+/', $string, $matches);
if (isset($matches[0]) && ! empty($matches[0])) {
foreach ($matches[0] as $key => $value) {
//echo '<pre>';print_r($key);echo '</pre>';
//echo '<pre>';print_r($value);echo '</pre>';
$stmt = $mysqli->prepare("INSERT INTO hash_tag (tagged_word) VALUES (?)");
$stmt->bind_param("s", $value);
$stmt->execute();
}
}
我正在开发这个标签系统。我正在尝试将主题标签词放入新行的数据库中。对于每个标签词,我都需要将其插入到新行中。 下面是我的 php 行代码...
$string = filter_var("#hello #world", FILTER_SANITIZE_STRING);
preg_match_all('/(?<!\w)#\w+/', $string, $matches);
foreach ($matches as $key => $value) {
$stmt = $mysqli->prepare("INSERT INTO hash_tag (tagged_word) VALUES (?)");
$stmt->bind_param("s", $value);
$stmt->execute();
}
这样做不会向数据库中插入任何内容,但是当我将 $value
替换为 $value[0]
时,它会输入第一个 #hello
.
我想将 #hello
和 #world
作为新行输入到数据库中。
提前致谢。
请更改 foreach 循环:
foreach ($matches as $key => $value) {
到
foreach ($matches[0] as $key => $value) {
因为,$matches
是一个多维数组,我们正在尝试访问它的第 0 个和第 1 个元素,它们也是数组而不是字符串。
如果我们尝试访问 $matches
的第一个子数组,它将完美运行。
所以,最终的代码是:
<?php
$string = filter_var("#hello #world", FILTER_SANITIZE_STRING);
preg_match_all('/(?<!\w)#\w+/', $string, $matches);
if (isset($matches[0]) && ! empty($matches[0])) {
foreach ($matches[0] as $key => $value) {
//echo '<pre>';print_r($key);echo '</pre>';
//echo '<pre>';print_r($value);echo '</pre>';
$stmt = $mysqli->prepare("INSERT INTO hash_tag (tagged_word) VALUES (?)");
$stmt->bind_param("s", $value);
$stmt->execute();
}
}