标签: flightphp

PDO:当我只插入1行时,在mysql中插入3行

我在我的PHP框架(飞行)中使用PDO,我有一个荒谬的问题.当我在mysql中插入1行时,我看到插入了3行.

Flight::db()->query("INSERT INTO `menu_item`(`order`, `menu_cat_id`) VALUES (22,1)");
Run Code Online (Sandbox Code Playgroud)

这是我的全部代码:

<?php
require 'flight/Flight.php';

Flight::register('db', 'PDO', array('mysql:host=localhost;port=3306;dbname=deliman', 'root', ''), function($db) {
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8'");
        $db->exec("SET NAMES 'utf8';");
        $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, 0);
});

Flight::route('/menu/item/new', function(){
        //$conn = Flight::db();
        $data = Flight::db()->query("INSERT INTO `menu_item`(`order`, `menu_cat_id`) VALUES (22,1)");

        //SET @maxOrder := (SELECT `order` FROM `menu_item` WHERE `menu_cat_id` = 1 ORDER BY `order` DESC LIMIT 1) +1 ;
        //SELECT LAST_INSERT_ID() AS id;
        echo 'a';
    });


Flight::start();
?>
Run Code Online (Sandbox Code Playgroud)

php pdo flightphp

5
推荐指数
1
解决办法
821
查看次数

从子目录飞行PHP路由

所以我使用Flight PHP微框架(http://flightphp.com/)进行路由.我的问题是,如何在子目录中运行路由器?我的意思是,基本上,在文件夹中运行它"沙盒".

对于'/'的请求只是拉取常规的index.php文件.但是对'/ flight/file'的请求会使用Flight加载URL.

我知道你不能只将它转储到服务器上的文件夹中并希望它能够正常工作,因为FlightPHP需要相对于root的URL.

有没有办法运行FlightPHP隔离在一个目录中,其余的网站运行常规PHP?

编辑

我尝试将.htaccess文件放入子目录中.这具有特殊的效果,使得路线仍然像从根部那样起作用(例如/事物/ otherthing /何时应该是/ otherdirectory/thing/otherthing /)同时导致404回调不起作用.不是我的意图.

编辑2

.htaccess文件的内容,这是Flightphp网站建议的:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
Run Code Online (Sandbox Code Playgroud)

php .htaccess url-rewriting url-routing flightphp

4
推荐指数
1
解决办法
2372
查看次数

即使我在POST上收到200响应,$ _POST数据仍为空?

我有一个PHP应用程序,它使用AngularJS作为客户端,FlightPHP用于REST服务,PHP用于后端.

但是,即使我在POST这里发布了这个代码:

$scope.registerUser = function() {
    $http({
        method: 'POST',
        url: '/user/register',
        data: $scope.user
    }).success(function(data) {
                if (data.result === undefined) {
                    setAjaxMessage(data, false);
                    return;
                }

                if (data.result === 0) {
                    setAjaxMessage(data.message, true);
                }
                else {
                    setAjaxMessage(data.message, false);
                }
            }).error(function(data) {
                setAjaxMessage(data, false);
            });
};
Run Code Online (Sandbox Code Playgroud)

我得到了成功POST与通过Firefox的消息Params -> Request payload设置为这个数据标签:

{"displayname":"user1","email":"user1@gmail.com","password":"abc123"}
Run Code Online (Sandbox Code Playgroud)

当我发出这个服务器端时:

Flight::route('POST /user/register', function() {
    echo var_dump($_POST);
    return;

    // register the user
    require 'core/register.php';
});
Run Code Online (Sandbox Code Playgroud)

我明白了:

array (size=0)
  empty
Run Code Online (Sandbox Code Playgroud)

什么给这里?我之前从未遇到过$_POST …

html javascript php angularjs flightphp

1
推荐指数
1
解决办法
1053
查看次数