php - MySQL 只选择字段的第一个单词
问题描述
我正在尝试填充这样的表单:
$email = $_SESSION["email"];
$result = $mysqli->query("SELECT * FROM patient WHERE email = '$email'");
$user = $result->fetch_assoc();
$firstName = $user["firstName"];
$lastName = $user["lastName"];
$bday = $user["bday"];
$address1 = $user["address1"];
$address2 = $user["address2"];
$city = $user["city"];
$state = $user["state"];
$zipCode = $user["zipCode"];
$phone = $user["mobilePhone"];
$contactMethod = $user["contactMethod"];
$reminders = $user["reminders"];
$updates = $user["updates"];
然后我使用这样的回声:
<input type="text" name="address1" <?php echo 'value=' . $address1; ?> required />
它适用于除所示字段之外的所有字段。它只获取该列的第一个单词。例如,“123 First Street”仅将输入字段填充为“123”。如果我删除空间并将列值设置为“123FirstStreet”,则整个内容都会填充。所以我猜测 mySQL 会自动使用空格分隔符来分隔列中的值。有没有办法获取整列?提前致谢。
解决方案
你的代码
<input type="text" name="address1" <?php echo 'value=' . $address1; ?> required />
将生成一个不正确的 html 标签:
<input type="text" name="address" value=123 First Street required />
尝试将其更改为:
<input type="text" name="address" value="<?php echo $address; ?>" required />
避免此类错误的最佳做法是在插入 php 代码之前先编写完整的 html 模板/标签。
更新
正如@user2864740 所指出的,最好将输入字符串中出现的特殊字符转换为HTML 字符实体的形式。
<input type="text" name="address" value="<?php htmlentities($address1); ?>" required />
推荐阅读
- python-3.x - 使用 boto3 在 DynamoDB 中创建“SS”项目
- angular - 当我尝试从 firebase 检索数据时,带有 *ngFor 的空白页面
- r - 转换面板数据
- c - Problem to understand how it works theses processes
- mysql - 使用 MySQL 中的函数验证年龄
- angular - 离子:子选项卡中的 NavParams 在页面刷新后丢失
- css - SVG 动画,CSS 旋转动画,但保持在同一个地方
- debugging - Lua - 执行返回和或时出错
- vector - 使用 RcppParallel 并行添加向量
- sql - SQL仅获取两列的唯一组合