php - cURL 和 PHP 显示 "1"

标签 php mysql database curl

我有一个 PHP 脚本,我想用它从数据库中读取服务器并使用 cURL 连接到它们。服务器响应 sql 查询的结果。问题是每次服务器响应后的脚本都显示数字 1。输出如下所示:

Server 1: some results

1Server 2: some results

1Server 3: some results

1

这是从数据库中读取服务器并连接到它们的代码:

<?php

$mysql_id = mysql_connect('localhost', 'ms', 'pass');
mysql_select_db('servers', $mysql_id);
mysql_query("SET NAMES utf8");

$query = "SELECT * FROM svr";
$result = mysql_query($query);
$num = mysql_num_rows($result);
while ($data = mysql_fetch_assoc($result))
{
    $server[] = $data;
}

mysql_close($mysql_id);

$i = 0;
while($i < $num) {
    $dealer = $server[$i]['dealer'];

    echo $dealer . "<br />";

    $data = "val=a"; //just for testing                                                                    

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);    
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                                                                                                       
        'Content-Type: text/html; charset=utf-8')                                                                       
    );                                                                                                                                                                                   

    $result = curl_exec($ch);
    echo $result;
    $i++;
}

?>

我发现 1 显示为“echo $result;”创建响应的代码是这样的:

<?php

$mysql_id1 = mysql_connect('localhost', 'ms', 'pass');
mysql_select_db('servers', $mysql_id1);
mysql_query("SET NAMES utf8");

    $query2 = "SELECT * FROM data";
    $result2 = mysql_query($query2);
    $num2 = mysql_num_rows($result2);
    while ($data2 = mysql_fetch_assoc($result2))
    {
        $deli[] = $data2;
    }
    $i1 = 0;
    $space = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
    while ($i1 < $num2) {
        echo $space . $deli[$i1]['id'] . " ";
        echo $deli[$i1]['artikel'] . " ";
        echo $deli[$i1]['znamka'] . " ";
        echo $deli[$i1]['model'] . " ";
        echo $deli[$i1]['letnik'] . " ";
        echo $deli[$i1]['cena'] . " € ";
        echo $deli[$i1]['zaloga'] . "<br />";
        $i1++;
    }
    echo "<br />";
    mysql_close($mysql_id1);
?>

请帮帮我

最佳答案

使用 CURLOPT_RETURNTRANSFER 选项。否则,cURL 将自动回显数据并仅返回 true(回显将其转换为 1)。

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

PHP.net说,

TRUE to return the transfer as a string of the return value of curl_exec() instead of outputting it directly.

关于php - cURL 和 PHP 显示 "1",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10909002/

相关文章:

php - #1064 - 将 .ibd 或 .frm 文件导入数据库时​​出错

database - R:是否有更快的方法将大数据框中的列从字符转换为 POSIXct 日期时间?

php - 我可以让 mysql 对它接收的数据类型不那么严格吗?

PHP MySQL向多个表插入数据

php - 多线程注释 PHP?

php - 仅显示已更改的列

php - 来自数据库的页面显示特殊字符,如何解决?

mysql - 尝试在 Ruby 1.9.3、Rails 3.2.7、mstwjs Noel Rappin 教程应用程序中加载 gem 'mysql2' 时出错

database - 提高informix中sql的性能

mysql - 不正确的 DOUBLE 值错误