【问题标题】:Creating an Array with PHP and MySQL [closed]使用 PHP 和 MySQL 创建数组 [关闭]
【发布时间】:2012-06-20 05:39:10
【问题描述】:

我在 stackoveflow 上查看了几篇关于创建数组的帖子,但还没有找到我正在寻找的东西......我想尝试这么多不同的答案,并得到一个最接近我正在尝试的答案去完成。

假设我想使用这个查询创建一个数组:

“从产品中选择 *”

这是如何最有效地完成的?

谢谢。

PS - 请注意,我是从头开始的。

更新

我的配置文件:

`[root@CentOS testphp]# vi config.php
<?php
// Connection's Parameters
$db_host="localhost";
$db_name="tablename";
$username="username";
$password="password";
$db_con=mysql_connect($db_host,$username,$password);
$connection_string=mysql_select_db($db_name);
// Connection
mysql_connect($db_host,$username,$password);
mysql_select_db($db_name);
?>`

我正在尝试创建数组的 php 代码...我收到语法错误:

解析错误:语法错误,第 2 行 /var/www/html/testphp/test.php 中的意外 T_VARIABLE

我得到同样的错误:

`[root@CentOS testphp]# vi test.php
<?php include('config.php')
$query = "select * from upload_products";
$dataArray = array();
$result = mysqli_query($query, $link);
while($row = mysqli_fetch_assoc($query)) {
$dataArray[] = $row;
}
var_dump($dataArray); //Now you have your array.
?>`

任何想法......感觉就像我在这里遗漏了一些东西。而且,是的,我已经阅读了文档...逐行使用了他们的代码,查看了代码,但仍然得到与我在网上找到的所有代码示例相同的错误。

【问题讨论】:

  • 你应该阅读php手册:php.net/manual/en/index.php,搜索关于sql查询
  • 如果您对许多不同的答案感到困惑,再问一个宽泛的问题也无济于事。您对现有解决方案有什么具体问题?
  • 家庭作业问题?在深入研究 MySQL 之前,您似乎需要从 PHP 开始。阅读手册。
  • 你想要完成什么?如果您尝试过某些东西,请发布您的代码。太宽泛的问题... MySQLi/PDO 有几个相同的功能...php.net/manual/en/mysqli-result.fetch-array.php 它们每个都带有示例代码....

标签: php mysql database arrays


【解决方案1】:

没有明确的方法可以将数据库结果对象转换为关联数组目录。您必须创建这个数组作为您的结果。

$query = "...";
$dataArray = array();
$result = mysqli_query($query, $link);
while($row = mysqli_fetch_assoc($query)) {
    $dataArray[] = $row;
}
var_dump($dataArray); //Now you have your array.

【讨论】:

    【解决方案2】:

    你可以使用:

    $query = mysqli_query("SELECT * FROM products");
    $result = mysqli_fetch_assoc($query);
    

    但您只会在 $result 变量中收到一行。如果您想获取所有内容,则必须对其应用任何循环:例如:

    $query = mysqli_query("SELECT * FROM products");
    while($result = mysqli_fetch_assoc($query)){
     //do something with your results 
     //you can access result like: $result['column_name']
    }
    

    你现在清楚了吗?

    【讨论】:

    • 请停止宣传已弃用的mysql_ 函数。
    • 假设 OP 甚至有一个数据库,他们如何连接到它?
    • @deceze: 只是要发布相同的内容! :)
    • @emte - 我收到此错误:解析错误:语法错误,第 5 行 /var/www/html/jmdb1/test4.php 中的意外 T_VARIABLE
    • 对不起从mysql改成了mysqli。当然最好是用户 OOP...
    【解决方案3】:

    您可以使用mysql_fetch_assocmysql_fetch_array 以数组形式获取mysql 查询响应。以下是如何使用两者的代码示例。

    使用 mysql_fetch_assoc

    $query = "select * from products";
    $result = mysql_query($query);
    if (mysql_num_rows($result) != 0) {
       while ($row = mysql_fetch_assoc($result)) {
              //every row will represent a record as an array
              // your code   
       }
    }
    

    使用 mysql_fetch_array

     $query = "select * from products";
     $result = mysql_query($query);
     if (mysql_num_rows($result) != 0) {
           while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
               //every row will represent a record as an array
               //  your code
          }
     }
    

    如果您还有任何疑问,请参阅 php 手册。

    【讨论】:

    • 我尝试了此页面上的示例一:php.net/manual/en/function.mysql-fetch-assoc.php 并收到此错误:Parse error: syntax error, unexpected T_STRING in /var/www/html/jmdb1/test6.php on line 20 。 ...有什么想法吗?
    • 看,这是语法错误。 PHP 无法解析您的语法。所以请深入了解您的代码。顺便说一句,什么代码写在第 1 行。 20
    • 我想我感到困惑的地方是我正在使用由回答问题的人提供的链接。该链接恰好在 php.net 站点上,它本身不是我的代码。我可以查看它,但是为什么首先会出现语法错误?出口;是第 20 行唯一的东西。
    • 请检查您的 mysql 扩展是否在 PHP.ini 中加载。如果已加载,则检查代码中的 mysql 连接。这是调试您的测试代码的唯一方法,因为即使我无法弄清楚您的代码抛出错误的原因,直到我可以查看您的代码..
    【解决方案4】:

    试试这个

    @ $db = new mysqli('localhost', 'username', 'password', 'dbname');
    
      if (mysqli_connect_errno()) {
         echo 'Error: Could not connect to database.  Please try again later.';
         exit;
      }
    
      $query = "select * from books";
      $result = $db->query($query);
    
      $num_results = $result->num_rows;
    
      echo "<p>Number of books found: ".$num_results."</p>";
    
      for ($i=0; $i <$num_results; $i++) {
         $row = $result->fetch_assoc();
        // echo something here
      }
    
      $result->free();
      $db->close();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-17
      • 2014-06-28
      • 1970-01-01
      • 2012-10-18
      • 2017-12-12
      • 2017-07-03
      相关资源
      最近更新 更多