无法在mysql中选择一行

时间:2015-04-09 20:36:01

标签: php html mysql mysqli

EDIT1:使用双引号和单引号,但我收到同样的错误。

EDIT2:相同的查询返回结果mysql shell

我从表中选择一行。

if(!isset($_GET['title']) || !isset($_GET['user'])){
  echo "hi"; //something come here 
}
else{
 $title = $_GET['title'];
 $title = mysqli_real_escape_string($conn,$title);

 $user = $_GET['user'];
 $user = mysqli_real_escape_string($conn,$user);
 echo $title ;
 echo $user ;

 // tried giving value directly to test but no luck
 $query = "SELECT * FROM site WHERE client=\"Chaitanya\" && title=\"werdfghb\" "; 
 $result5 = mysqli_query($conn,$query) or die(mysqli_error());
 $count = mysqli_num_rows($result5);
 echo $count ;

 while($result9 = mysqli_fetch_array($result5)){ 
 $kk=$result9['url'];
 echo $kk ;
 }
 $page = $kk; 
 include ( 'counter.php');
 addinfo($page);
}

在我的数据库中有一行包含列标题和客户端,我输入的值在该行中,但当我echo count(no of rows)显示zero时。

代码有什么问题吗?

3 个答案:

答案 0 :(得分:1)

您获得的错误是由于

$page = $kk;

此代码中的

$kk之前未声明。定义的$kk位于while循环范围内。

在while循环

的外部作用域中声明这样的变量
...
$kk = null;
while($result9 = mysqli_fetch_array($result5)) { 
    $kk = $result9['url'];
    echo $kk ;
}
$page = $kk; 
...

获取数据时出错

你必须将SQl分解成更小的部分并像这样测试代码。

  1. 运行查询SELECT * FROM site而不使用任何where并获取计数
  2. 运行查询SELECT * FROM site WHERE client='Chaitanya'并获取计数
  3. SELECT * FROM site WHERE title='werdfghb'并检查点数
  4. 然后运行整个查询
  5. 看到结果。这样您就可以找到SQL代码中的问题所在。 我更喜欢使用mysql客户端来执行此查询

答案 1 :(得分:0)

正如我在评论中指出的那样,$kk$page = $kk;未定义,因为它是在while循环中声明的。

做类似的事情:

$kk = '';   //can also do $kk=NULL; if you want.
while($result9 = mysqli_fetch_array($result5)) { 
    $kk=$result9['url'];
    echo $kk ;
}
$page = $kk; 

答案 2 :(得分:0)

尝试这个

$ client =“Chaitanya”;

$ title =“werdfghb”;

$ query =“SELECT * FROM site WHERE client ='”。$ client。“'and title ='”。$ title。“'”;

您也可以使用此

$ query =“SELECT * FROM site WHERE client = {$ client} and title = {$ title}”;