PHP 和 MySQL 问题

标签 php mysql

好的,我正在使用 strip_tags当用户标记帖子时但当用户输入类似下面的示例中的内容时,摆脱 html。

我在数据库中输入了五个空值,我不希望其他一切都很好。我怎样才能阻止这个?

,,,,,,,, ,, ,,,,a,d, <html> , ruby-on-rails , ad, <html>

我将以下内容输入到数据库中注意逗号没有输入到数据库中

, , , a, d, , ruby-on-rails, ad, 

这是我的代码。

$tags = preg_split('/,/', strip_tags($_POST['tag']), -1, PREG_SPLIT_NO_EMPTY);
$tags = array_map('trim', $tags);
$tags = str_replace(' ', '-', $tags);

仅应将以下内容输入数据库。

a,d,ruby-on-rails,ad 

这是我插入的一个简单示例。

 for ($x = 0; $x < count($tags); $x++){
    $query1 = "INSERT INTO tags (tag) VALUES ('" . mysqli_real_escape_string($mysqli, strtolower($tags[$x])) . "')";
}

最佳答案

您应该检查这些值是否为 empty() 。如果是,请从数据库插入查询中忽略它们或将它们标记为“null”。

在没有看到数据库表设计或任何处理数据库的代码的情况下,很难说我们如何更好地帮助您。

更新

使用 INSERT 查询中的新信息,以下是如何应用空(未经测试的待处理语法错误):

$tags = array_filter($tags, function ($v) { return !empty($v);});

for ($x = 0; $x < count($tags); $x++){
    $query1 = "INSERT INTO tags (tag) VALUES ('" . mysqli_real_escape_string($mysqli, strtolower($tags[$x])) . "')";
}

应该从数组中删除空值,等待我没有犯一个简单的错误。

编辑

这是一种选择,但是是的。由于您已经在使用循环,因此只需在循环内添加 if 即可。使用 array_filter 它应该从数组中删除所有空值。

移动了函数定义。以上应该有效。

关于PHP 和 MySQL 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3442599/

相关文章:

php - 在 Symfony 中使用自定义数据库数据设置功能测试

mysql - 我可以使用我的本地工具使用 root 帐户连接远程服务器的 mysql。但我无法在远程服务器 `mysql -u root -p xxx`连接

PHP MySQL 查询提交按钮

php - 我的注册表单 php 代码有什么问题

php - 我怎样才能按日期订购?

php - PDO 是否有可能返回带有静态/单例共享数据库对象的 "wrong"最后插入的 ID?

php - localhost/xampp - 此网页不可用

php - 如何在编辑表单中编辑除 1 字段外的公司 codeigniter

PHP PDO 准备语句——MySQL LIKE 查询

MySQL 查询 - 今天和过去 30 天之间的记录