繁体   English   中英

PHP / MySQL新手得到数据包故障

[英]PHP/MySQL newbie Got Packets out of order

我正在尝试遵循本教程http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app

我大约在验证PHP / MySQL功能页面的一半,并且卡住了。

我只是第一次设置MAMP。 我的MAMP htdocs目录中有两个文件

index.php

<?php
    echo "Hello, PHP!";
?>

promocodes.php

<?php

class RedeemAPI {
    private $db;

    // Constructor - open DB connection
    function __construct() {
        $this->db = new mysqli('localhost', 'root', 'root', 'promos');
        $this->db->autocommit(FALSE);
    }

    // Destructor - close DB connection
    function __destruct() {
        $this->db->close();
    }

    // Main method to redeem a code
    function redeem() {
        // Print all codes in database
        echo "Hello, PHP!";
        $stmt = $this->db->prepare('SELECT id, code, unlock_code, uses_remaining FROM rw_promo_code');
        echo "Hello, PHP!";
        $stmt->execute();
        $stmt->bind_result($id, $code, $unlock_code, $uses_remaining);
        while ($stmt->fetch()) {
            echo "$code has $uses_remaining uses remaining!";
        }
        $stmt->close();
    }
}

?>

当我去http://localhost:8888/index.php

“您好,PHP!”;

当我转到http://localhost:8889/index.php ,出现以下乱码

H 5.5.9 G }Se''tHIr ÿ÷。€ (ja&7“ BfZoB < mysql_native_password! #08S01Got数据包乱序

当我转到http://localhost:8888/promocodes.php

当我转到http://localhost:8889/promocodes.php ,出现以下乱码

H 5.5.9 H x%J's@# ÿ÷ € -YX0#_89T|50 mysql_native_password! ÿ##08S01Got数据包乱序

由于stackoverflow的政策不允许我封装太多链接,因此请为本地主机使用ADDR

  1. 您不应该调用ADDR:8888 / index.php,而是将index.php文件放在promos文件夹中,然后调用ADDR:8888 / promos (在您的情况下,这可能是promocodes文件夹中的index.php文件,因此地址应为ADDR :8888 /促销代码
  2. 当您访问哪个8889端口号时,您尝试直接打MySQL,您不应该这样做。 尝试使用端口8888和以下命令:

      curl -F "rw_app_id=1" -F "code=test" -F "device_id=test2" ADDR:8888/promos/ 

    要么

      curl -F "rw_app_id=1" -F "code=test" -F "device_id=test2" ADDR:8888/promocodes 

(假设您在promocodes文件夹中确实有index.php
3.请记住,当您尝试使用Web浏览器的导航栏访问服务器时,确实会发送GET类型请求。 如果需要卷曲的替代方法,请尝试使用某些Web浏览器的插件,例如“海报”(专用于FireFox)。

[ 5.7.20-0ubuntu0.16.04.1 UW47HvY ÿ÷ ÿ nfm@*g}

我不确定MySQL中的结构是什么。 我以前从未见过,但是此页面似乎来自:

/etc/mysql/fabric.cfg

修改配置文件或删除指向主要Apache配置的任何链接。

如果您的my.cnf文件中恰好有old_password=1 ,则可以尝试将其设置为0并重置密码。

发现问题后,在新的RedeemAPI类中进行复制时,我删除了实际使用该类的代码。

// This is the first thing that gets called when this page is loaded
// Creates a new instance of the RedeemAPI class and calls the redeem method
$api = new RedeemAPI;
$api->redeem();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM