小编Mas*_*din的帖子

PDO不会抛出带有未绑定参数的异常(并且查询中没有变量)

所以我不知道这里发生了什么

$link = new PDO('pgsql:dbname=' . $name . ';host=' . $host, $user, $password);
$link->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

try {
    $stmt = $link->prepare("SELECT s.*, d.invalid_column FROM students s ORDER BY s.student_id");
    $stmt->execute(array(1));
}
catch (PDOException $e) {
    print $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)

当我运行这个小代码示例时,我希望抛出一个异常(因为d.invalid_column不是一个真正的列,而且我传入了无法绑定的参数),但唯一发生的是execute返回false没有其他的.此外$stmt->errorInfo()是空白的,代码00000使得很难添加一个超出通用的正常异常,除了日志之外没有别的东西可以帮助我在某些最终用户报告错误时跟踪错误.

如果我加一个'?' 在查询的某个地方d.invalid_column,即使我添加了更多不绑定到任何内容的参数,也会抛出正确的执行(这不是有效的列).

所以如何让这个查询正确错误:
1)摆脱所有参数
2)添加'?' 到查询

这只是PDO中的一个错误还是什么?

编辑:将引发异常的设置(无效列):

    $stmt = $link->prepare("SELECT s.*, d.invalid_column, ? FROM students s ORDER BY s.student_id");
    $stmt->execute(array(1));

    $stmt = $link->prepare("SELECT s.*, d.invalid_column, ? FROM students s ORDER BY s.student_id");
    $stmt->execute(array(1,2,3)); …
Run Code Online (Sandbox Code Playgroud)

php postgresql pdo

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

在Matlab的Ezplot中绘制python/pyplot中的任意二维函数

我正在寻找一种方法来生成类似于ezplot如何在MATLAB中工作的绘图,因为我可以输入:

ezplot('x^2 + y^2 = y + 5')
Run Code Online (Sandbox Code Playgroud)

并获得准备好任意函数的图形.我只担心我有斧头和斧头的情况.

我只有这个功能,而且我真的不想尝试计算某些给定x范围的所有y值,如果我不需要的话.

我见过的几个解决方案是关于决策边界(这不是.没有测试数据或任何东西,只是一个任意函数)或者都是已经定义为y =某些x方程的函数帮我.

我有点接受,如果有一个很好的方法来模仿Wolfram | Alpha的求解功能("求解x ^ 2 + y ^ 2 = y + 5为y"将给我两个函数,然后我可以单独绘制),而是更喜欢ezplot,因为它在MATLAB中或多或少是即时的.

python matlab matplotlib

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

aiosmtpd - python smtp 服务器

我正在尝试使用 python 和库在我的计算机上运行我自己的 stmp 服务器aiosmtpd
我运行这个例子,一切看起来都很好,但我从未收到对方的电子邮件。
不知道是否有日志可以看到。
我使用的是 Visual Studio 2015、Python 3.5 和 Windows 8.1

我看到过类似的帖子,但没有帮助。

重要提示:
在客户端代码中,我也尝试过不使用日期标头

服务器.py:

 import asyncio import logging

 from aiosmtpd.controller import Controller
 from aiosmtpd.handlers import Sink
 from smtplib import SMTP

 async def amain(loop):
     cont = Controller(Sink(), hostname='::0', port=8025)
     cont.start()


 if __name__ == '__main__':
     logging.basicConfig(level=logging.DEBUG)
     loop = asyncio.get_event_loop()
     loop.create_task(amain(loop=loop))
     try:
         loop.run_forever()
     except KeyboardInterrupt:
         pass
Run Code Online (Sandbox Code Playgroud)

客户端.py:

 from smtplib import SMTP import smtplib

 s = SMTP('localhost', 8025) try:
     s.set_debuglevel(True)
     s.sendmail('andy@love.com', ['bob@hate.com'], """\
     Date:17/05/2017,2:18
     From: andy@love.com
     To: …
Run Code Online (Sandbox Code Playgroud)

python smtp smtplib aiosmtpd

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

继续div元素超过水平溢出

一个JSFiddle:http://jsfiddle.net/24tL8mkq/3/

我希望红色突出显示一直持续到整个盒子.

现在,它的设置使得:

<div style='width: 500px; overflow: auto; border: 1px solid black; padding-top:-5px;'>
    <pre id='pre_1'>
        <!-- code box -->
    </pre>
</div>
Run Code Online (Sandbox Code Playgroud)

使用相关的css(这是我希望通过溢出扩展整个div的CSS):

.bad {
    background-color: palevioletred;
    width: 100%;
}
Run Code Online (Sandbox Code Playgroud)

我知道我不能使用,width: 100%因为它只会延伸到溢出的最右侧,但是我不能设置静态宽度,因为我不知道盒子的大小是多少.

我真的更喜欢保留这个HTML/CSS解决方案,如果可能的话,只是为了让它尽可能便携.

html css

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

标签 统计

python ×2

aiosmtpd ×1

css ×1

html ×1

matlab ×1

matplotlib ×1

pdo ×1

php ×1

postgresql ×1

smtp ×1

smtplib ×1