0

这是用于获取用户输入的单词的 PHP 代码。请问如果用户在我的网站上输入关键字“john”为“jhon”而没有姓氏,如何显示“jhon dewey”的结果?

我的数据库字段是:

first_name(包含名字记录)

last_name(包含姓氏记录)

这是我的代码。请帮我找出错误。我可以将 %john% 更改为变量,以便用户输入的任何单词都可以搜索到我的数据库吗?

<?php

// Database connection

$sql = new mysqli("localhost", "root", "MYPassword", "test");
if (mysqli_connect_errno ()) {
    die(mysqli_connect_error());
    exit;
}


$query = "SELECT * FROM `usage` WHERE 'first_name' LIKE %john%";
$result = $sql->query($query);
if (!$result)
    die($mysqli->error);

while ($row = $result->fetch_assoc()) {
    $rows[] = $row;
}
$result->close();
$sql->close();

print("<pre>");
print_r($rows);
print("</pre>");
?>
4

2 回答 2

0
  • 模式是字符串文字,因此它们必须用单引号括起来。
  • 其次,列名是标识符,因此不应将它们用单引号括起来,因为单引号用于字符串文字。

片段:

$query = "SELECT * FROM `usage` WHERE `first_name` LIKE '%john%'"

由于您的列名不是保留关键字,因此在这种情况下,反引号是可选的

$query = "SELECT * FROM `usage` WHERE first_name LIKE '%john%'"
于 2013-03-18T03:09:44.937 回答
0

检查这个

<?php

// Database connection

$sql = new mysqli("localhost", "root", "MYPassword", "test");
if (mysqli_connect_errno ()) {
    die(mysqli_connect_error());
    exit;
}


$query = "SELECT * FROM `usage` WHERE `first_name` LIKE '%john%'";
$result = $sql->query($query);
if (!$result)
    die($mysqli->error);
$rows = array();
while ($row = $result->fetch_assoc()) {
    $rows[] = $row;
}
$result->close();
$sql->close();

print("<pre>");
print_r($rows);
print("</pre>");
?>
于 2013-03-18T05:48:47.923 回答