在查询中返回字符串

时间:2014-07-29 09:14:15

标签: php mysql sql mysqli

我正在尝试将数据库的某些字段导入另一个数据库。所以,我用mysqli连接到我的数据库。

$mysqli = new mysqli("localhost", "root", "password", "db_name");
if ($mysqli->connect_errno) {
    echo "$mysqli->connect_errno";
} else {
    echo "You're IN"."<br />";
}

现在,我选择表格的PK:

$emails = $mysqli->query("SELECT email FROM customers WHERE date_first_order IS NOT NULL AND date_first_download IS NOT NULL");

我知道我现在在$ email中有一个数组。所以,我使用foreach循环。

foreach($emails as $email) {
        $email = $email["cl_email"];
        $query_name = $mysqli->query("SELECT name FROM customers WHERE email = $email");

        $query_lastname = $mysqli->query("SELECT lastname FROM customers WHERE email = $email");
        echo $email." ".$query_name." ".$query_lastname."<br />";

    }

这是我的问题,使用query_name和query_lastname vars我得到一个数组,而不是一个String。那么,我如何才能获得我正在寻找的领域?

感谢。

4 个答案:

答案 0 :(得分:1)

使用MySQLi时,如果要将每一行作为关联数组,则应使用mysqli_result::fetch_assoc()http://php.net/manual/en/mysqli-result.fetch-assoc.php

while ($row = $result->fetch_assoc()) {
    printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

答案 1 :(得分:0)

我希望这是一个字符串,您应该首先将其放入''

$relation= $mysqli->query("SELECT name, lastname FROM customers WHERE email = $email");
-----------------------------------------------------------------------------^------^

并获取行。

$row = $relation->fetch_row());

其次,您只需从数组返回所需的密钥。

echo $email . " " . $row["name"] . " " . $row["lastname"] . "<br />";

答案 2 :(得分:0)

正如@jonathon所提到的,mysqli-result :: fetch-assoc()可以帮助你解决这个问题。此外,我没有看到任何理由你必须做这些查询。我相信你也可以将所需的输出转换成单个查询:)

$query_name = $mysqli->query("SELECT email,name,lastname FROM customers WHERE date_first_order IS NOT NULL AND date_first_download IS NOT NULL"); while ($row = $query_name->fetch_assoc()) { print $row['email'].$row['name'].$row['lastname']; }

答案 3 :(得分:0)

你可以使用implode(“,”,$ yourvariable); 它将您的数组更改为字符串。你可能想用逗号分隔结果,或者你可以放(“”,$ yourvariable); 希望这有帮助!:)