【发布时间】:2013-09-23 04:18:46
【问题描述】:
很抱歉浪费您的时间,但我正在尝试将数据库表中的数据存储到数组中并显示在表中。我不断收到同样的错误。我已经更改了"'s 并删除了变量。我还是得到了
警告:mysql_fetch_array():提供的参数不是第 41 行 /home/a3656574/public_html/Home.php 中的有效 MySQL 结果资源
<?php
if ($_POST['search_projects']){
$con= mysql_connect("host","username","password","a3656574_opacmin") or die ('Error: ' . mysql_error());
$sql= "SELECT * FROM searchedWords WHERE accessDate LIKE '%" . $_POST['search'] . "%' ORDER BY accessDate DESC";
$result= mysql_query($sql);
while($row= mysql_fetch_array($result))
{
$Date =$row['AccessDate'];
$Key=$row['keyWord'];
$Count=$row['count'];
echo "<tr>";
echo "<td>" .$Date ."</td> ". " <td>" . $Key. " </td>" . " <td>" . $Count. " </td>";
echo "</tr>";
}
}
?>
我不知道如何解决这个问题。有人可以帮忙吗?
【问题讨论】:
-
请确保这些不是您的真实凭据
-
确保您的查询是正确的,$sql= "SELECT * FROM searchedWords WHERE accessDate LIKE '%" 。 $_POST['搜索'] 。 "%' ORDER BY accessDate DESC";只需打印它并直接在控制台上运行它
-
你应该使用
mysqli_*函数,如果我没记错的话,mysql_*函数从 MySQL 5.5 中被弃用。在任何公共论坛上发帖时,从您的 mysql con 中删除实际凭据。您必须选择一个数据库;你在mysql_query之前选择过一个吗? -
在
$result= mysql_query($sql);之后添加if(!$result) die(mysql_error())。错误信息是什么?此外,正如 Maz 所说,您应该使用 mysqli 或 PDO 而不是 mysql_ 函数。 -
通过使用外部变量构建 SQL 语句,您很容易受到 SQL 注入攻击。 此外,任何带有单引号的输入数据,例如 " O'Malley”,会炸毁你的 SQL 查询。请了解如何使用参数化查询(最好使用 PDO 模块)来保护您的 Web 应用程序。 bobby-tables.com/php 有示例可以帮助您入门,this question 有很多详细示例。
标签: php mysql syntax-error