0

......我没有更进一步。

我的数据库包含一列 '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: $stmt->bindParam(':name', str_replace(' ',' ',$name));

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

4

1 回答 1

0

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

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

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

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

于 2012-12-10T22:55:12.013 回答