使用php查询包含HTML特殊字符的mysql数据库

时间:2012-12-10 22:26:47

标签: php mysql special-characters

......我没有得到任何进一步的信息。

我的数据库包含一个列'name'='John Richards'

我尝试查询它:

$act = "John Richards";
prepareEditing($act);

function prepareEditing($act) {
include ($_SERVER['DOCUMENT_ROOT']."/final_ritg/includes/dbconnect.php");
$act = str_replace(" ", " ", $act);
$sql = "select `name`,`genre`, `members`, `story`, `image`, `contact_fname`, `contact_lname`, `contact_phone`, `contact_email` from `festival`.`act` where `name` = :name ;";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':name', $act);
$stmt->execute();

echo $stmt->rowCount();
}

当'name'只包含一个单词时,如'john',该函数返回1($ act也包含'john')。

如何准备查询?

编辑:我正在全面使用utf8。

编辑:这是我用来插入数据的准备工具:     $ stmt-> bindParam(':name',str_replace('','',$ name));

我这样做了,因为在尝试检索时,查询结果会在空格处被切断。

1 个答案:

答案 0 :(得分:0)

事实证明,我的错误不是在PHP中,而是在html中。

我正在从表中创建一个选择列表。因为名称是唯一的,我使用它们作为主键和每个选择选项的值...那些不喜欢空格。

这里的解决方案是向表中添加一个带编号的索引或进行一些字符串转换(但这会导致为查询准备字符串的大量额外工作)我还不知道我将如何去在此。

无论如何,也许另一个初学者遇到同样的陷阱并发现这很有用。