【发布时间】:2012-04-13 01:22:46
【问题描述】:
我正在从 MySQL 表中获取数据以将其显示在页面上。该脚本正在显示信息,但在我的表中,我们插入了普通引号作为另一种类型的引号字符,例如。 ( ’ ) 和 ( “ ” ) 在 Microsoft Word 2010 中键入内容时会自动以这种方式格式化,用于键入表格中的大多数条目。所以我猜这些是特殊字符。但是,每当我测试显示带有实际单引号 ( ' ) 和 ( " " ) 的字段时,我都会收到 mysql_fetch_row 期望参数 1 是资源,布尔给定 错误。这是我使用的代码:
$result = mysql_query("SELECT `question` FROM {$db_table_alt}");
while($field = mysql_fetch_row($result)) {
foreach($field as $fields) {
//build a unique section ID based on the ID that the Question belongs to
$uid = mysql_query("SELECT `id` FROM `questions` WHERE `question` LIKE '%$fields%'");
while($uidfield = mysql_fetch_row($uid)) {
但是每当我使用这条线时
$fields = mysql_real_escape_string(stripslashes($fields));
将显示带有真实引号的字段,但引号前带有正斜杠。
有人可以帮我解决这个问题吗?
【问题讨论】:
-
表中的实际数据是什么?当您对该列运行选择时,phpmyadmin 或您正在使用的任何客户端会显示什么?
-
当我使用 phpmyadmin 时,它会正确显示与查询对应的列,但它是 php 的全部(如果是引号,尽管 mysql_real_escape_string 和带斜杠不会显示)情况。
-
这两张表有什么联系? $db_table_alt 变量中有什么?看起来您不需要 2 个查询,而只需要一个。
-
解决方案非常简单。我想知道为什么这两个家伙错过了它。
标签: php mysql mysql-real-escape-string stripslashes