小编tea*_* me的帖子

PHP PDO 将图像加载到 MS SQL Server 2012

我正在尝试使用 PDO 将图像上传到 SQL Server,其代码与我在 MySQL 中执行的代码相同,但没有成功。

我以为它会像 MySQL 一样简单,但微软确保我会受苦。

我收到的错误是:SQLSTATE[IMSSP]:将输入参数 3 的字符串转换为 UCS-2 时发生错误:目标多字节代码页中不存在 Unicode 字符的映射。

我创建了这个小的可运行示例(2 个文件“upload.php”和“test.html”)。为了使用 MySQL,参数应该是$db = 'mysql'

名为“upload.php”的 php 文件内容:

<?php

$db = 'mssql'; // $db = 'mysql';

$config = array(
    'mysql' => array(
        'dsn'       => 'mysql:host=localhost;dbname=',
        'user'      => 'root',
        'password'  => ''
    ),

    'mssql' => array(
        'dsn'       => 'sqlsrv:Server=localhost;Database=',
        'user'      => '',
        'password'  => ''
    )
);

try {
    // connect to database
    $pdoTest = new PDO($config[$db]['dsn'].'test', $config[$db]['user'], $config[$db]['password']);
    $pdoTest->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // …
Run Code Online (Sandbox Code Playgroud)

php sql-server pdo

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

从"Sec-WebSocket-Key"生成"Sec-WebSocket-Accept"

我正在关注rfc6455:

具体而言,如上例所示,| Sec-WebSocket-Key |
标题字段具有值"dGhlIHNhbXBsZSBub25jZQ ==",服务器
将串联字符串"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"
以形成字符串"dGhlIHNhbXBsZSBub25jZQ == 258EAFA5-E914-47DA-95CA-
C5AB0DC85B11".然后服务器将获取此SHA-1哈希,
给出值0xb3 0x7a 0x4f 0x2c 0xc0 0x62 0x4f 0x16 0x90 0xf6
0x46 0x06 0xcf 0x38 0x59 0x45 0xb2 0xbe 0xc4 0xea.
然后对该值进行base64编码(参见[RFC4648]的第4节),得到值
"s3pPLMBiTxaQ9kYGzzhZRbK + xOo =".然后,此值将在
| Sec-WebSocket-Accept |中回显 标题字段.

并且无法生成正确的"Sec-WebSocket-Accept".

为了理解我使用在线SHA1哈希Base64编码的过程.

"dGhlIHNhbXBsZSBub25jZQ == 258EAFA5-E914-47DA-95CA-C5AB0DC85B11" 的在线SHA1散列给出了正确的结果:"b37a4f2cc0624f1690f64606cf385945b2bec4ea",如rfc6455中所述.

但是对于输入"b37a4f2cc0624f1690f64606cf385945b2bec4ea" ,在线Base64编码给出了错误的结果"YjM3YTRmMmNjMDYyNGYxNjkwZjY0NjA2Y2YzODU5NDViMmJlYzRlYQ ==".结果应为"s3pPLMBiTxaQ9kYGzzhZRbK + xOo ="

我究竟做错了什么?

webserver http websocket

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

标签 统计

http ×1

pdo ×1

php ×1

sql-server ×1

webserver ×1

websocket ×1