Mysql资源进入PHP数组不起作用

时间:2010-08-12 10:20:19

标签: php mysql

我昨天发布了这个,我没有得到可以解决我的问题的答案,但无论如何我得到了一些非常好的想法。此代码从数据库中检索关联的行并将其转换为PHP数组,以便将其显示为配置文件信息。这是我目前的代码:

查询:

<?php

require 'includes/constants.php';

class newMysql {
    private $conn;

    function __construct() {
        $conn = mysql_connect(DB_SERVER_USERS, DB_USER_USERS, DB_PASSWORD_USERS, DB_NAME_USERS);
        if(!$conn) die('There was a problem connecting to the database.');
    }

    function get_profile(mysql_escape_string($lname)) {
        $query = "SELECT * FROM members WHERE lname = '".$lname."' ";
        $registerquery = mysql_query($query);
        if($registerquery){
            if (gettype($registerquery) == "resource") {
                if (mysql_num_rows($result) != 0 ) {
                    while ($row = mysql_fetch_assoc($registerquery)) {
                    $profile[] = $row;
                    }
                    return $profile;
                }
            }
            if(gettype($registerquery) == "boolean") {
                return "No array returned";
            }
        }
        else return "Query not successful".$registerquery;
    }
}

显示:

<?php

require 'classes/newMysql.php';

$mysql = new newMysql();

$profile = array();

$profile = $mysql->get_profile("lozano");

echo $profile;

无论我做什么,我都会收到消息:“查询不成功”。 那么查询不返回任何内容?它也没有抱怨数据库连接失败。我直接从CLI尝试了查询,它确实返回了预期的数据行。

任何帮助......

3 个答案:

答案 0 :(得分:2)

如果您的查询不成功,请使用mysql_error了解发生的情况。

http://php.net/manual/en/function.mysql-error.php

它可以帮助您快速解决问题。

修改: 您似乎没有在代码中选择特定的数据库。你应该做 在连接之后,在查询之前mysql_select_db($dbname, $conn);

答案 1 :(得分:0)

确实

function get_profile(mysql_escape_string($lname)) {

实际上有效吗?

我原本期望一个解析错误......它肯定是我本地5.2.8安装上的对象

function get_profile($lname) {
    $lname = mysql_escape_string($lname)

答案 2 :(得分:0)

您可能想尝试一下:

<?php

require 'includes/constants.php';

class newMysql {
    private $conn;

    function __construct() {
        $this->conn = mysql_connect(DB_SERVER_USERS, DB_USER_USERS, DB_PASSWORD_USERS, DB_NAME_USERS);
        if(!$this->conn) die('There was a problem connecting to the database.');
    }

    function get_profile($lname) {
        $query = "SELECT * FROM members WHERE lname = '".mysql_escape_string($lname)."' ";
        $registerquery = mysql_query($query, $this->conn) or die(mysql_error());
        if($registerquery){
            if (gettype($registerquery) == "resource") {
                if (mysql_num_rows($result) != 0 ) {
                    while ($row = mysql_fetch_assoc($registerquery)) {
                    $profile[] = $row;
                    }
                    return $profile;
                }
            }
            if(gettype($registerquery) == "boolean") {
                return "No array returned";
            }
        }
        else return "Query not successful".$registerquery;
    }
}

不要使用我在生产中添加的or die构造(更好地记录这些错误并向最终用户提供一个很好的错误消息)。