我正在尝试将数据库的某些字段导入另一个数据库。所以,我用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。那么,我如何才能获得我正在寻找的领域?
感谢。
答案 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); 希望这有帮助!:)