PHP mysql没有错误但仍然失败

时间:2014-01-31 04:21:38

标签: php mysql

我不知道发生了什么。我通常在这样的页面中进行简单的登录,但是这个页面没有工作,我无法发现错误。

<?php
$con=mysql_connect("db_server","db_user","db_pass","db");
if (!$con)
{
   echo "Failed to connect to MySQL: " . mysql_error();
}
$username = $_GET['username'];
$password = $_GET['password'];

$query="SELECT username FROM users ";
//$query.="WHERE `username`=".$username;
//$query.=" AND `password`=".$password;
echo "query=".$query."<br/>";
$result = mysql_query($query, $con);
echo "result=".$result."<br/>";
if($result){
    $row = mysql_fetch_assoc($result);
    $data = $row['username'];
    echo "data=".$data;
}else{
    echo "something went wrong:".mysql_error();
}
mysql_close($con);
?>

我正在使用mysql_*代替mysqli_*作为运行它的服务器是5.2;不确定这是否相关,但我最初得到一个无法识别的功能错误。

数据库中只有一个条目。正如我所说,我通过phpmyadmin使用常规SQL代码,我得到了我需要的结果。

也不确定是否相关。我回应了$ result而没有任何结果。它不应该回应&#34; false&#34;

2 个答案:

答案 0 :(得分:3)

您的逻辑中存在重大错误。如果连接到MySQL时出错,则打印错误,但继续查询断开的连接 - 您也没有选择数据库。

此外,这种方法适用于PHP4。除非你在这个项目中遇到PHP4,否则进入PHP5世界会是一个好主意。

我建议调查PDO: http://www.php.net/manual/en/book.pdo.php

至于没有收到错误,请检查.ini

中的error_reporting和display_errors设置

答案 1 :(得分:-2)

试试这个。

<?php
$con=mysql_connect("db_server","db_user","db_pass");
mysql_select_db("db");

if (!$con)
{
   echo "Failed to connect to MySQL: " . mysql_error();
}
$username = $_GET['username'];
$password = $_GET['password'];

$query=mysql_query("SELECT username FROM users");
if($query){
    $row = mysql_fetch_assoc($query);
    $data = $row['username'];
    echo $data;
}else{
    echo "something went wrong:".mysql_error();
}
mysql_close($con);
?>