连接正常,我没有收到连接错误。但是,当我运行脚本时,我收到 undefined index 错误,并且它输出“0 结果”,尽管我的表肯定已填充,并且我正在搜索我知道表中的内容。
我使用 MySQL Workbench 来管理数据库,并使用 apache (xampp) 来托管本地服务器并运行 PHP 脚本。这可能是问题所在吗?有没有办法让我将数据库托管在与 apache 网站相同的位置?
$sql="SELECT * FROM book_table WHERE Title LIKE $input OR Author LIKE $input OR Barcode LIKE $input";
$result = $conn->query($sql);
if ($result) {
while($row = $result->fetch_all()) {
echo "<br>Title: " . $row["Title"]. " - Author: " . $row["Author"];
}
} else {
echo " <br> 0 results";
}
最佳答案
我给你的建议是PDO :
$dsn = 'mysql:host=localhost;dbname='.$dbname;//$dbName is the name of your database
$user = 'root';
$pass = '123';//use your login information here
$db = new PDO($dsn, $user,$pass);
$query = "SELECT * FROM book_table WHERE Title LIKE :info OR Author LIKE :info OR Barcode LIKE :info";
$ps = $db->prepare($query);
$ps->bindValue(':info', $input)
$ps->execute();
$result = $ps->fetchAll(PDO::FETCH_ASSOC);
//iterate over result
if (!empty($results)){
foreach ($result as $row) {
echo "<br>Title: " . $row["Title"]. " - Author: " . $row["Author"];
}
} else {
echo " <br> 0 results";
}
另外,请记住以正确的方式使用 MySQL LIKE
。当你想匹配字符串的一部分时,你需要使用%
符号。
例如:
SELECT * FROM book_table WHERE Title LIKE "%goodbook%"
它将返回标题中包含“goodbook”的所有行。
关于php - 在我的 php 脚本中,我与服务器的连接有效,但我的 sql 查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40307649/