回应Mysql查询

时间:2016-08-12 04:08:36

标签: php mysql

好的。我搜索并搜索了一个答案,但我找不到它。

我正在编写一个简单的PHP脚本,它获取url信息并通过MySQL查询运行它以查看结果是否出现。我尝试回显持有查询的变量,但没有任何显示。我知道必须有结果,因为如果我在MySQL中手动输入查询,它会显示我想要的结果。

$result = mysqli_query("SELECT * FROM pages WHERE pageq = '" . $_GET['page'] . "'" );
$data = mysqli_fetch_assoc($result);
echo ("You have just entered in " . $data['id'] . "!!! YAY");

我试图回应$ result和$ data。但没有任何显示。我是编程的新手,这是我的第一篇StackOverflow帖子,如果我犯了很大的错误,请原谅我。

2 个答案:

答案 0 :(得分:1)

问题是您没有在查询中设置连接。 mysqli_query()需要两个参数。

首先建立连接:

$conn = mysqli_connect("localhost", "user", "password", "dbname");

现在执行查询:

 $result = mysqli_query($conn,"SELECT * FROM pages WHERE pageq = '" . $_GET['page'] . "'" );

注意:您的代码非常容易受到MySQL注入攻击。使用MySQLi或PDO 准备好的陈述

此外,您应该使用mysqli_errno()来查找您的查询错误。

编辑: 也这样做:

while($row=mysqli_fetch_assoc($result)){
//do the result output. 
  }

答案 1 :(得分:1)

实际上mysqli_query()需要两个参数...请查看以下示例示例..

<?php
$conn = mysqli_connect('localhost','root','','your_test_db');

$_GET['page'] = 1;

$result = mysqli_query($conn,"SELECT * FROM your_table WHERE id = '" . $_GET['page'] . "'");
$data = mysqli_fetch_assoc($result);


echo ("You have just entered in " . $data['id'] . "!!! YAY");

?>

正如你所说,你刚刚处于学习阶段,可以编写这类查询只是为了自己学习,但不要对这些查询进行编码,因为这些查询容易受到攻击,所以我建议你使用准备查询 PDO ...

也绝不在查询中使用SELECT *,这是一种不好的做法,只处理您需要的字段。

此外,您始终可以检查数据库是否已连接。这样你就有了更好的主意。

// Check connection
if (mysqli_connect_errno())
{
   echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

你还没有提到你是否遵循OOP结构..所以我建议你检查 error_reporting()并在同一页面上连接数据库来检查周围的事情..

此外,您可以检查现在WHERE是否没有"SELECT * FROM your_table条件,以确定您是否至少获得了所有记录。