我一直在阅读其他人对此错误做了什么,并对我的php.ini文件进行了更改,添加了代码来覆盖另一个php设置,并且最终仍然出现同样的错误。这是我的代码:
<html>
<body>
<table>
<?php error_reporting (E_ALL ^ E_NOTICE); ?>
<?php
function getRecords($query) {
$con = mysql_connect("localhost", "movie", "moviepw");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("movies", $con);
$result = mysql_query($query);
// THE ERROR IS REPORTED ON THIS LINE
return $result;
}
function buildQuery() {
$keyword = $_GET['keyword'];
$sql = "SELECT * from movies WHERE
(
'movie_title' LIKE '%keyword%'
OR
'movie_description' LIKE '%keyword%'
)";
return $sql;
}
$query = buildQuery();
$records = getRecords($query);
while($row = mysql_fetch_array($records)){ ?>
<tbody>
<table border='1'>
<tr>
<td><?= $row['movie_title']; ?></td>
<td><?= $row['movie_rating']; ?></td>
<td> <img src="<?= $row['movie_image'];?>"> </td>
<td><?= $row['movie_description']; ?></td>
<td><a href="movie_index.php">Return to Search</a></td>
</tr>
<? } ?>
</tbody>
</table>
</body>
</html>
知道我为什么会收到此错误?
答案 0 :(得分:7)
编辑器添加了不可删除的空格。我不得不删除几行并重写它们。所以,这个问题与代码不完全一样......只是一个文本编辑器软件问题。
我遇到的另一个错误是我的查询出现布尔错误。结果我试图查询数据库而不是表。
感谢您的帮助!
答案 1 :(得分:1)
从查询中的列名中删除单引号。如果PHP解释器仍在抱怨ASCII 29,这可能不是唯一的错误。
$sql = "SELECT * from movies WHERE
(
'movie_title' LIKE '%keyword%'
OR
'movie_description' LIKE '%keyword%'
)";
// Should be
$sql = "SELECT * from movies WHERE
(
movie_title LIKE '%keyword%'
OR
movie_description LIKE '%keyword%'
)";