PHP 每次更新记录时都会添加空格

标签 php mysql

我从表中读取值并以用户可以更改更新的形式显示它们。问题是每次我进行更新时,都会向表中的每个值添加一堆空格。

基本代码如下:

function ReadHTML($str) {
    return htmlspecialchars(stripslashes($str), ENT_QUOTES);
}

$query = "SELECT * FROM " . $table_name . " WHERE id = " . $row_id;

$result = mysqli_query ($connection, $query ) or die ("Database query failed: " . mysqli_error($connection));

$row = mysqli_fetch_assoc($result);

$q1 = ReadHTML($row['q1']);

当我在表单中显示值时,它看起来很好。但是当我更新值时,空格就会被添加。

当我处理更新时,它看起来像这样:

function mysqli_prep(&$connection, $value) {
    $detagged = strip_tags($value);
    $escaped = mysqli_real_escape_string($connection, $detagged);
    return $escaped;
}

$q1 = mysqli_prep($connection, $_POST['q1'])

$query = "UPDATE my_form SET  
        q1='$q1'";

谁能看出我做错了什么?


HTML 看起来像这样:

<textarea class="textarea form_textarea_field" name="comment_1" placeholder="Comments">
                <?php if($saved_form == true) {echo $q1;} ?>
            </textarea>

当我在浏览器中查看 DOM 时,它看起来像这样:

<textarea class="textarea form_textarea_field" name="comment_1" placeholder="Comments">
                " Test text "
            </textarea>

但我从来没有添加那些引号或空格,它们也没有出现在显示中。不确定这是正常现象还是问题的线索。

最佳答案

如果您不想添加任何空格,则在构建 html 时应确保文本区域中没有空格。

所以改变:

<textarea class="textarea form_textarea_field" type="textarea" name="comment_1" placeholder="Comments">
            <?php if($saved_form == true) {echo $q1;} ?>
        </textarea>

到:

<textarea class="textarea form_textarea_field" type="textarea" name="comment_1" placeholder="Comments"><?php if($saved_form == true) {echo $q1;} ?></textarea>

请注意,textarea 的开始和结束标记之间的所有内容都是其内容的一部分(包括换行符、空格等)。

关于PHP 每次更新记录时都会添加空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23749305/

相关文章:

Android上传图片到Mysql

php - 如何从2个单独的SQL表中选择最新日期?

PHP + MySQL : Finding total of values by recursing through mySQL parent children groups

php - Laravel 设置用户属性

mysql - 将 MySql 转换为 PostgreSQL

MySQL 将数据从一个表移动到另一个表,匹配 ID

mysql - 访问数据库的用户列表

php - MySQL使用PDO插入没有插入数据

php - Jquery自动补全+Mysql

mysql - 我试图根据列表中的值返回一个字符串