以HTML格式显示数据

时间:2015-10-11 19:03:06

标签: php html

我正在学习使用php mysqli预处理语句将数据放入我的数据库。我使用此代码将数据导入数据库。

$FirstName=ucwords($_POST['fname']);
$LastName=ucwords($_POST['lname'], "-'");
$Customer=$LastName."  ".$FirstName;

$conn = new mysqli($host,$user,$password,$db);
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}
$stmt = $conn->prepare("INSERT INTO customers (FirstName, LastName, Customer) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $FirstName, $LastName, $Customer);
$stmt->execute();
$conn->close();

这非常有效。特别是带有带连字符的名字或带有撇号的名字,如Pete O&#Brian布莱恩。

现在,当我尝试将信息从数据库中恢复出来时,我正在使用以下代码。

$conn = new mysqli($host,$user,$password,$db);

if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}
$stmt = $conn -> prepare("SELECT Customer, Instrument1 FROM tblinvoice WHERE InvID = ?");

$stmt->bind_param("i", $tempid);
$stmt->execute();
$stmt -> bind_result($cust, $inst);
$stmt -> fetch();
$cust = mysqli_real_escape_string($conn, $cust);
$stmt -> close();
$conn -> close();

但上面的输出O \是O' Brian的姓氏。我删除了mysqli_real_escape_string($ conn,$ cust)并且只使用$ cust的绑定值我只是得到O而不是O' Brian。

任何人都可以告诉我我在做什么或者我在做错了什么?

1 个答案:

答案 0 :(得分:1)

始终在db中将要显示在html中的内容中使用htmlspecialchars()

echo htmlspecialchars($yourresult['yourfield'], ENT_QUOTES);

填写HTML表单输入字段值时,我们应该始终使用htmlspecialchars。