PHP / MySQL新手得到的数据包乱序

时间:2012-03-30 01:27:49

标签: php mysql mamp

我正在尝试按照本教程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时,我得到以下乱码

  

ħ   5.5.9 G } Se“tHIr ÿ÷ (ja&amp; 7”BfZoB&lt; mysql_native_password! ÿ“#08S01Got包乱序

当我去http://localhost:8888/promocodes.php时,我得到了

  

当我去http://localhost:8889/promocodes.php时,我得到以下乱码

  

ħ   5.5.9 H x%J'“s @# ÿ÷ -YX0#_89T |50 mysql_native_password! ÿ”#08S01Got包乱序

4 个答案:

答案 0 :(得分:0)

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

答案 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();

答案 2 :(得分:0)

由于stackoverflow的策略不允许我包含太多链接,请将ADDR用于localhost

  1. 您不应该调用 ADDR:8888 / index.php ,而是将 index.php 文件放在promos文件夹中并调用 ADDR:8888 / promos (在您的情况下,这可能是promocodes文件夹中的 index.php 文件,因此地址将为 ADDR:8888 / promocodes
  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 
    
  3. (假设你在promocodes文件夹中有 index.php
     3.请记住,当您尝试使用Web浏览器的导航栏点击服务器时,您会发送GET类型请求。如果您需要替代curl,请尝试使用某些Web浏览器的插件,如“Poster”(专用于FireFox)。

答案 3 :(得分:0)

  

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

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

  

/etc/mysql/fabric.cfg

修改配置文件或删除指向主Apache配置的所有链接。