2

问候,

我是 PHP 新手。这是我为登录页面编写的一个小型登录脚本。它检查数据库中的用户名和密码。

 <?php

$con = mysqli_connect("localhost","root","saw","gehriroute");

if(mysqli_connect_errno())
{
    echo "could not connect to the database";
    exit;
}
else
{
    echo "database runing <br>";
}

$uname = trim($_POST['uname']);
$password = trim($_POST['password']);

echo "username and password are $uname and $password <br>";

$query =  "select count(*) from login where username = '".$uname."' and password = '".$password."' ";



$result = mysqli_query($query,$con);

if(!$result)
{
    echo "query failed";
}



$row = mysqli_fetch_row($result);
$count = $row[0];

if($count > 0 )
{
    echo "yes your are logged in";
}
else
{
    echo "wrong username or password";
}

?>

它没有连接到数据库的问题,但也没有响应。我打赌脚本不会通过 mysql_error() 函数。我尝试使用mysql_error()函数对其进行调试,它没有返回任何内容。我可以用来调试和纠正错误的其他东西是什么?

输出:

database runing
username and password are ateev and saw
query failed
4

6 回答 6

1

为什么不首先通过命令行或工作台运行 SQL?

然后,这将使您能够确保查询有效并且您获得了预期的结果。

编辑

此外,如果您阅读mysqli_query手册页,则该行

$result = mysqli_query($query,$con);

是不正确的,应该是

$result = mysqli_query($con, $query);
于 2013-04-06T09:18:30.723 回答
1

可以试试这个:

if (!mysqli_query($link, $query)) { //if the query fails find the error
    echo mysqli_error($link);
}
于 2013-04-06T09:19:03.053 回答
1

让我们试试这段代码。现在可以了。

<?php

$con = mysqli_connect("localhost","root","saw","gehriroute");

if(mysqli_connect_errno())
{
    echo "could not connect to the database";
    exit;
}
else
{
    echo "database runing <br>";
}


$uname = trim($_POST['uname']);
$password = trim($_POST['password']);

echo "username and password are $uname and $password <br>";

$query =  "select count(*) from login where username = '".$uname."' and password = '".$password."' ";

$result = mysqli_query($con,$query);   // Connection link should first

//echo "Error: ".mysqli_info();

$count = mysqli_num_rows($result);    // Get Count row like this..

if($count > 0 )
{
    echo "yes your are logged in";
}
else
{
    echo "wrong username or password";
}

?>
于 2013-04-06T09:32:41.450 回答
0

尝试在您的查询之后添加。这将检查/确定您的查询是成功执行还是返回错误

$result = mysqli_query($query,$con);

if(!$result){
  // means your query failed
  // error checking...
   printf("Error: %s\n", mysqli_error($con));
}
else {
   echo 'query executed.';
}
于 2013-04-06T09:14:45.217 回答
0

很可能没有调用 php 脚本。尝试将您的 .php 文件设置为 justecho 'x';并查看是否x输出。如果不是,那么您调用了错误的脚本并需要指定正确的文件名(例如:myScript.php)。

这是您尝试做的一个工作示例。只需替换SELECT Code, Name FROM Country ORDER BY Name为您的查询。

快乐编码:)

于 2013-04-06T09:16:33.887 回答
0

回声$查询;出口

复制查询并将其运行到您的查询执行器!

如果有的话,你会得到 SQL 错误

其他明智的查询将成功运行。

于 2013-04-06T09:19:58.323 回答