小编use*_*748的帖子

当应该有结果时,PHP MySQL查询视图返回0结果

我有一个运行PHP 5.6的站点.该站点的数据库最近从MySQL 5.1升级到MariaDB 10.0(MySQL 5.5兼容),现在我的站点上的查询将无法工作(并且在连接到MySQL 5.1数据库时它正常工作.

对于这个演示,我有一个名为"content"的数据库表,字段为"id"(整数),"page_title"(var_char).在该表中有两行 - 一行ID为1,page_title为"Test 1",第二行ID为2,page_title设置为"Test 2".

然后我使用phpMyAdmin中的以下查询创建了该表的视图:

select `content`.`id` AS `id`,`content`.`page_title` AS `page_title` from `content`
Run Code Online (Sandbox Code Playgroud)

我可以在phpMyAdmin的视图中看到内容表中的视图和两行.

在我的PHP页面上,我有一个面向对象的样式查询.该代码是:

<?php
try {
require_once 'Connections/dbconn.php';
$sql = "SELECT id, page_title FROM v_content WHERE id = 1 LIMIT 1";
$stmt = $db->stmt_init();
if (!$stmt->prepare($sql)) {
    $error = $stmt->error;
} else {
    $stmt->bind_result($id, $page_title);
    $stmt->execute();
    $stmt->store_result();
    $stmt->fetch();
}
} catch (Exception $e) {
$error = $e->getMessage();
}?>
Run Code Online (Sandbox Code Playgroud)

此查询返回以下内容:尝试在没有与语句关联的结果集时读取行

如果我将表从VIEW"v_content"更改为表"content",我会返回一个结果.另外,如果我使用相同的查询(查询VIEW v_content),并连接到MySQL 5.1数据库,我会返回结果.我知道查询本身没有任何问题,因为我已经将查询复制并粘贴到phpMyAdmin并返回了结果,并且在MySQL 5.1数据库上使用了完全相同的代码并返回了结果.我检查了错误日志,没有显示错误.

任何人都知道是什么原因导致我从视图中返回0结果?

php mysqli mariadb

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

ASP Classic 下载文件脚本

我有一个用 ASP Classic 构建的网站,并且在使用允许用户下载文件但隐藏文件路径的脚本时遇到一些问题。

当用户在页面上时,他们将看到一个链接。该链接的编码如下:

<a href="download.asp?file=FILE-NAME-HERE" target="_blank">Download File</a>
Run Code Online (Sandbox Code Playgroud)

此链接将他们带到 download.asp,其中运行代码以获取文件并传送它。这是我现在的代码:

<%
const adTypeBinary = 1
dim strFilePath, strFile

strFilePath = "/_uploads/private/" 
strFile = Request.QueryString("file") 

if strFile <> "" then
    'Set the content type to the specific type that you are sending.
     Response.ContentType = "application/octet-stream"
     Response.AddHeader "Content-Disposition", "attachment; filename=" & strFile

     set objStream = Server.CreateObject("ADODB.Stream")
     objStream.open
     objStream.type = adTypeBinary
     objStream.LoadFromFile(strFilePath & strFile)

    response.binarywrite objStream.Read

    objStream.close
    Set objStream = nothing

end if
%>
Run Code Online (Sandbox Code Playgroud)

这段代码是我根据本网站上的两个问题(How to download the files using vbscript …

vbscript asp-classic

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

SQL除以两个整数并得到一个十进制值错误

在一个SQL语句中,我试图划分两个整数(在我的代码中整数1是"abc",在我的代码中整数2是"xyz"),并得到一个十进制的结果(在我的代码中的def).十进制结果应该只有一个前导1或0,后跟一个十进制和十进制后的3个数字.但是我的代码一直返回一个没有小数的0.

SELECT CONVERT(DECIMAL(4,3), abc/xyz) AS def
Run Code Online (Sandbox Code Playgroud)

当我想要的是"0.001"或"0.963"时,此代码会产生"0".我相信它仍然将"def"视为整数,而不是小数.

我也尝试在abc和xyz上使用CAST,但它返回相同的东西.我也尝试了以下代码:

SELECT CONVERT(DECIMAL(4,3), abc/xyz) AS CONVERT(DECIMAL(4,3)def)
Run Code Online (Sandbox Code Playgroud)

但这给了我一个错误,说"CONVERT"这个词附近有语法错误.

sql sql-server asp-classic

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

标签 统计

asp-classic ×2

mariadb ×1

mysqli ×1

php ×1

sql ×1

sql-server ×1

vbscript ×1