php - 如何在PHP函数中使用Mysql数组的行?

标签 php mysql arrays

我在 PHP 中有一个函数,我想从 MYSQL 数据库导出一个数组,然后使用循环中的行来对它们执行一些操作。

    $DB_Server = "XXX.XXX.XXX.XXX";
    $DB_Username = "XXXX";
    $DB_Password = "XXXXX";
    $DB_Database = "XXXXX";


    $conn = new mysqli($DB_Server, $DB_Username, $DB_Password, $DB_Database);

    $query = "Select Name, Wert from test.DBPBX";

function show(array $options) {
    global $showresult, $master, $conn, $query;
    $result = mysqli_query($conn, $query);

        while ($row = mysqli_fetch_assoc($result)) {
        $cnlongname =  $row["Name"];
        $usercontent = $row["Wert"];
        $cn = $cnlongname;
        $options['config']->value = 1;
        $config = $options["config"]->value;
        $show = new SimpleXMLElement("<show/>");
        $user = $show->addChild("user");
        $user->addAttribute("cn", $cn);
        if ($config)
            $user->addAttribute("config", "true");

        print "cmd: " . htmlspecialchars($show->asXML()) . "\n";

        $showresult = $master->Admin($show->asXML());
        print "result: " . htmlspecialchars($showresult) . "\n";

        $mod = "text=".$usercontent;
        $modify = new SimpleXMLElement("$showresult");

        $user = $modify->user;
        $path = explode("/device/hw/", $mod);
        $srch = $user;
        $nsegments = count($path);
        $i = 1;
        foreach ($path as $p) {
            if ($i == $nsegments) {
                // last part, the modification
                list($attr, $value) = explode("=", $p);
                $srch[$attr] = $value;
            } else {
                $srch = $srch->$p;
            }
            $i++;
        }
        $modify = new SimpleXMLElement("<modify>" . $user->asXML() . "</modify>");
        print "cmd: " . htmlspecialchars($cmd = $modify->asXML()) . "\n";

        // do it
        $result = $master->Admin($cmd);
        print "result: " . htmlspecialchars($result);
        }
    }

对于 $cn,我想使用 $cnlongname (或 $row["Name"])。对于 $mod 我想使用 $usercontent (或 $row["Wert"])。但是,当我想使用它时,我在第一个循环后收到错误:

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, string given in /sample.php on line 175

第 175 行是:

while ($row = mysqli_fetch_assoc($result)) {

你能帮我吗?

最佳答案

在 while 循环中,您会覆盖结果,因此您会丢失 mysql 结果并且无法再查询它。

// do it
$result = $master->Admin($cmd);

在那里使用不同的变量。 :)

关于php - 如何在PHP函数中使用Mysql数组的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28674525/

相关文章:

java - table 上足球结果预测

php - 如何替换字符串中带有特殊符号(.)的单词?

php - 如何强制 PHP 使用字符串作为数组键?

php - 在 PHP Web 应用程序中从网络摄像头读取条形码

java - 无法使用 preparedStatement 创建表

php - 使用数组搜索 MySQL 数据库

javascript - 编写处理另一个函数输出的PHP函数时要使用哪种设计模式?

mysql - 将逗号分隔的字符串分隔到新表中

javascript - 在javascript中创建多维数组,自定义函数出错

javascript - 如何对包含多个项目的数组进行排序 - Javascript