Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从MySql检索联接数组_Php_Mysql_Join_Mysqli - Fatal编程技术网

Php 从MySql检索联接数组

Php 从MySql检索联接数组,php,mysql,join,mysqli,Php,Mysql,Join,Mysqli,我使用以下代码从数据库中提取一个联接查询: $query = 'SELECT `profiles`.`city`, `users`.`first_name`, `users`.`last_name`' . ' FROM profiles, users' . ' WHERE ((`profiles`.`user_id` = 3) AND (`users`.`user_id` = 3))' . ' LIMIT 1'; $result = $c

我使用以下代码从数据库中提取一个联接查询:

$query = 'SELECT `profiles`.`city`, `users`.`first_name`, `users`.`last_name`'
         . ' FROM profiles, users'
         . ' WHERE ((`profiles`.`user_id` = 3) AND (`users`.`user_id` = 3))'
         . ' LIMIT 1';
  $result = $connection -> query($query);

  $arr = $result -> fetch_array();

  $feedback = $arr;

  $result -> close();
  return $feedback;
这不是我的最终代码,这只是测试我加入的初步步骤

查询似乎工作正常,它提取了我需要的一行信息,但我注意到,当我
var_dump
it时,它将数组放入两个不同的索引中,一个数字索引和一个db字段名称的索引。下面是
var\u dump
的样子:

array(6) { [0]=> string(4) "Reno" ["city"]=> string(4) "Reno" [1]=> string(4) "John" ["first_name"]=> string(4) "John" [2]=> string(3) "Doe" ["last_name"]=> string(3) "Doe" }
这实际上使我的查询结果的大小增加了一倍。对于一行来说,这没什么大不了的,但是如果/当我开始使用相同的方法绘制多个记录时,将结果的大小加倍可能会很昂贵

我尝试了一个
foreach
循环:

foreach ($arr as $key=>$value) {
   $feedback[$key] = $value;
}
但它留给我同样的结果。我是否做错了什么,如果是,我该如何纠正它,或者这是正常的

感谢您的帮助

mysqli_result::fetch_array()的默认结果类型是
mysqli_BOTH
,这意味着您可以同时获得命名和数字结果数组索引(请参阅)


尝试改用。

要减小大小,您需要查看mysql\u fetch\u数组的第二个可选参数。这里记录了这一点:

您可以指定是否只需要数字索引或关联数组。

如果使用fetch row(http://www.php.net/manual/en/mysqli-result.fetch-row.php)你将不带姓名取回。我想这就是你要找的,对吗


编辑:这也适用于mysql,但函数是mysql\u fetch\u row($result),而不是mysqli

“默认mysql获取模式”--嗯,什么?太棒了!谢谢你的快速回复!工作完美。只要它允许我就接受它!我放入
fetch\u数组(MSQL\u ASSOC)
并work@zerkms你能告诉我更喜欢PDO(取回模式)吗?我已经纠正了错误semantics@Phil:我指的是
mysql
vs
mysqli
实际上;-)
mysql
本身没有任何获取模式或结果类型defaults@zerkms当然有。看,第二个arg
int$result\u type=MYSQL\u都是
谢谢,但是不,我应该指定,尽管菲尔击中了它的头部;我想返回结果的
\u ASSOC
部分-这将使我更容易知道我的值在哪里。