小编oke*_*_on的帖子

为什么我不能在PHP的DateTime类中访问DateTime-> date?这是一个错误吗?

使用DateTime该类,如果我尝试运行以下代码:

$mydate = new DateTime();
echo $mydate->date;
Run Code Online (Sandbox Code Playgroud)

我会收到此错误消息

注意:未定义的属性:DateTime :: $ date ...

这没有意义,因为在运行var_dump()变量时$mydate,它清楚地表明此属性存在且可公开访问:

var_dump($mydate);

object(DateTime)[1]
  public 'date' => string '2012-12-29 17:19:25' (length=19)
  public 'timezone_type' => int 3
  public 'timezone' => string 'UTC' (length=3)
Run Code Online (Sandbox Code Playgroud)

这是PHP中的错误还是我做错了什么?我正在使用PHP 5.4.3.

php datetime

82
推荐指数
3
解决办法
4万
查看次数

究竟是什么baseUrl

我花了一些时间试图理解baseUrl是什么(来自学习Zend Framework),但令人惊讶的是,对于这样一个无处不在的实用程序,没有一个"专家"或博客甚至试图定义baseUrl以便学习者知道什么它是关于.他们都假设你知道它是什么,然后继续推导它,每个人都用他自己的方法来得出他自己的结果.从我到目前为止所读到的内容:

有些人认为这是一个主页的URL,这是我自然而然地想到它是(从名字暗示),由被访问$_SERVER["HTTP_HOST"]$_SERVER["SERVER_NAME"]但令人惊讶的这些似乎是少数.

有人认为它是一个当前页面,可以通过server-name 访问$_SERVER["REQUEST_URI"]$_SERVER["PHP_SELF"]附加到server-name

而其他人认为它可以是任何上述或任何网址(好吧,至少这是我得到的印象),取决于用户想要如何使用它.

那么有人可以准确地解释一下baseUrl是什么,而不是假设我也是"专家"以及为什么我可能需要它.谢谢.

编辑: baseUrl应该在大多数Zend项目中自动设置,但显然不是我的情况.即使我做了echo $this->baseUrl()或者var_dump($this->baseUrl()),我什么都没得到.所以我真的不知道这个实用程序是什么.

php zend-framework base-url

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

.SQL和.DUMP文件之间的区别

当我进行mysqldump操作时,我得到一个.SQL文件.我从来没有创建过一个.DUMP文件,但能够从一个.DUMP文件中恢复一个数据库,该文件使用相同的操作("<"或SOURCE)来从.SQL文件中恢复数据库.

那么这两种文件类型有什么区别?

mysql sql database database-restore database-backups

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

在这个Java示例中对"super"关键字感到困惑

在java网站的教程页面上的这个例子中.两个接口定义相同的默认方法startEngine().类FlyingCar实现两个接口,并且必须覆盖,startEngine()因为存在明显的冲突.

public interface OperateCar {
    // ...
    default public int startEngine(EncryptedKey key) {
        // Implementation
    }
}
public interface FlyCar {
    // ...
    default public int startEngine(EncryptedKey key) {
        // Implementation
    }
}

public class FlyingCar implements OperateCar, FlyCar {
    // ...
    public int startEngine(EncryptedKey key) {
        FlyCar.super.startEngine(key);
        OperateCar.super.startEngine(key);
    }
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么,from FlyingCar,super用于指代startEngine()in OperateCarFlyCarinterfaces的两个版本.据我所知,startEngine()没有在任何超类中定义,因此不应该被称为居民.我也没有看到super和实现的两个接口之间有任何关系FlyingCar

java interface super java-8 default-method

6
推荐指数
2
解决办法
1543
查看次数

Datetime的NOW()函数不适用于PDO-MYSQL预处理语句?

我有一个数据库表,timetable其中包含一个DATETIME名为created_on.

created_on DATETIME,
notes VARCHAR(255) NOT NULL
Run Code Online (Sandbox Code Playgroud)

我使用该NOW()函数通过PDO预处理语句插入当前时间.

INSERT INTO timetable(created_on, note)
VALUES(?, ?);
Run Code Online (Sandbox Code Playgroud)

因此在绑定值并执行准备好的语句之后......

$notes ="This is a note...";
$values =array("NOW()", $notes);
$stm->execute($values);
Run Code Online (Sandbox Code Playgroud)

... notesMySQL表中的列写入了预期的数据,但created_on列生成了......

0000-00-00 00:00:00 
Run Code Online (Sandbox Code Playgroud)

我不想使用Unix纪元时间戳.那么我DATETIME该如何使用该 NOW()功能?

php mysql pdo prepared-statement

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

Symfony4注释路由不起作用

我刚开始学习Symfony.我完全遵循这个官方教程.config/routes.yaml使用注释时,路由工作正常,但使用注释:

namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Annotation\Route;

class LuckyController
{

    /**
     *  @Route("/lucky/number")
     */
    public function number(){

        $number = mt_rand(0, 100);

        return new Response(
            '<html><body><h1>MyLucky Number: ' . $number . '</h1></body></html>'
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

    Exception thrown when handling an exception
(Symfony\Component\Config\Exception\FileLoaderLoadException: [Semantical Error]
 The annotation "@Symfony\Component\Annotation\Route" in method 
App\Controller\LuckyController::number() does not exist, or could not be auto-loaded
 in C:\wamp\vhosts\mysymfony4\config/routes\../../src/Controller/ (which is
 being imported from "C:\wamp\vhosts\mysymfony4\config/routes/annotations.yaml"). Make sure
 annotations are installed and …
Run Code Online (Sandbox Code Playgroud)

routing annotations symfony symfony4

3
推荐指数
4
解决办法
5969
查看次数

如果session_start自动执行,我为什么需要设置cookie?

为什么我需要手动setcookie()让网站记住我,如果session_start()自动生成cookie变量$_COOKIE['PHPSESSID'=>'xy362fgtw783hnjm'].我相信这个cookie变量是长期的,当我回来时,网站会认出我.没有???

php cookies session

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

无法将MYSQL备份还原到新数据库

我使用线程的指南成功创建了一个数据库mysqldump文件.我还创建了第二个数据库,导航到包含并尝试将其恢复到新数据库但失败的目录,我尝试了两种方法:myDump.sqlmyDb1myDb2myDump.sqlmyDb2

> mysql -u root -p myDb2 < myDump.sql;
> -- entered password
Run Code Online (Sandbox Code Playgroud)

和:

> mysql -u root -p
mysql> -- entered password
mysql> USE myDb2;
mysql> SOURCE myDump.sql;
Run Code Online (Sandbox Code Playgroud)

两者都有相同的错误消息:

ERROR:
ASCII '\0' appeared in the statement, but this is not allowed unless option --binary-mode is enabled and mysql is run in
 non-interactive mode. Set --binary-mode to 1 if ASCII '\0' is expected. Query: ' ?-'.
Run Code Online (Sandbox Code Playgroud)

我还想知道是否需要使用与旧数据库相同的数据库名称.我尝试使用不同的名称,但同样的结果错误.

mysql mysqldump database-backups

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

如何从函数返回一个对象?

我不明白如何从函数返回一个对象.由于对象是通过引用传递和返回的,如果我在函数中创建了一个对象,我希望在函数完成执行后销毁这样的对象.所以这样的返回对象引用应该是指不存在的(被破坏的)对象.但是我在函数中创建的对象已成功返回.怎么会??

class O{
    public $ppty = "ppty value";
}

function f1(){
    $o1 = new O();
    return $o1;
}

var_dump(f1());


**Result:**
object(O)[15]
  public 'ppty' => string 'ppty value' (length=10)
Run Code Online (Sandbox Code Playgroud)

php object

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

使Javascript成为一项要求

有没有办法让Javascript成为在网站上运行页面的要求?这样如果用户禁用javascript,那他就不能继续了?例如:我有一个PHP站点,并希望仅使用javascript验证用户输入.

如果这是一个微不足道的问题,我道歉.我是javascript的新手,我从未见过或听说过这样的实现,但它是解决方案,我很想知道如何实现.谢谢.

javascript php

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

PDO :: prepare()不转义SQL中的特殊字符

我有一个HTML textarea无法插入MySQL表的元素的输入值,因为它包含撇号(')字符,例如:'Adam's garden'.所以我使用了PHP文档建议的PDO :: prepare()函数但是我仍然无法将这些数据插入到表中,但是当我删除撇号来获取时'Adams garden',该值成功插入

我认为该PDO::prepare()函数应该处理引号并转义SQL语句的特殊字符.PHP文档确实说使用PDO::prepare()绑定参数,但我没有将我的php变量绑定到查询参数.绑定参数是绝对必要的还是只是声明,因为这是使用PDO::prepare()函数的常用方法?

我如何引用和转义输入变量中的特殊字符?

编辑: 我正在使用字符串连接来执行多个SQL INSERT.撇号位于$evData['Description']以下示例代码的字段中.

$evQuery ="INSERT INTO ep_events
        VALUES(NULL, '" .$evData['Title'] ."', '" .$evData['Venue'] ."', '" .$evData['Address'] ."', '" .$evData['Description'] ."')";


$tkQuery ="INSERT INTO ep_tickets VALUES";
foreach ($tkData as $ref =>$tkObj){
    for($i=0; $i<$tkObj['Quantity']; $i++){
        $tkQuery .='(NULL, LAST_INSERT_ID(), "' .$tkObj['Name'] .'", "' .$tkObj['Price'] .'"),';
    }
}

$tkQuery =rtrim($tkQuery, ',');

$query ='START TRANSACTION;' .$evQuery ."; " .$tkQuery .';' .'COMMIT;';
$stm …
Run Code Online (Sandbox Code Playgroud)

php mysql pdo escaping quoting

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