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
时。
代码有什么问题吗?
答案 0 :(得分:1)
您获得的错误是由于
行 $page = $kk;
$kk
之前未声明。定义的$kk
位于while循环范围内。
在while循环
的外部作用域中声明这样的变量...
$kk = null;
while($result9 = mysqli_fetch_array($result5)) {
$kk = $result9['url'];
echo $kk ;
}
$page = $kk;
...
获取数据时出错
你必须将SQl分解成更小的部分并像这样测试代码。
SELECT * FROM site
而不使用任何where
并获取计数SELECT * FROM site WHERE client='Chaitanya'
并获取计数SELECT * FROM site WHERE title='werdfghb'
并检查点数看到结果。这样您就可以找到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}”;