我正在尝试在Microsoft SQL Server Management Studio 2008 R2中创建一个简单的视图。我尝试使用“ 视图”>“新视图”设计器,以及直接在查询生成器中键入CREATE VIEW命令,但是无论我如何创建,Studio都会扭曲我的查询。
这是源查询。请特别注意WHERE子句:
SELECT RTRIM(Orders.ITEMNUMBER) AS ItemNumber,
Orders.Type,
Orders.Quantity,
Orders.OrderNumber,
OrderDetails.SaleDate,
OrderLineItems.ReturnType,
OrderLineItems.Action,
OrderLineItems.Restock,
OrderLineItems.Return
FROM Orders
INNER JOIN OrderDetails ON Orders.Type = OrderDetails.Type
AND Orders.OrderNumber = OrderDetails.OrderNumber
INNER JOIN OrderLineItems ON Orders.OrderNumber = OrderLineItems.OrderNumber
WHERE (OrderLineItems.Type = 'INVOICE' AND Orders.Type='3') OR
(OrderLineItems.Type = 'RETURN' AND Orders.Type='4')
Run Code Online (Sandbox Code Playgroud)
但是,无论如何,SQL Server Management Studio都会使查询格式错误:
SELECT RTRIM(Orders.ITEMNUMBER) AS ItemNumber,
Orders.Type,
Orders.Quantity,
Orders.OrderNumber,
OrderDetails.SaleDate,
OrderLineItems.ReturnType,
OrderLineItems.Action,
OrderLineItems.Restock,
OrderLineItems.Return
FROM Orders
INNER JOIN OrderDetails ON Orders.Type = OrderDetails.Type …Run Code Online (Sandbox Code Playgroud) 我正在尝试准备一个mysqli查询,但它无声地失败而没有给出任何错误.
$db_hostname = "test.com";
$db_database = "dbname";
$db_username = "db_user";
$db_password = "password";
$db = new mysqli($db_hostname,$db_username,$db_password,$db_database);
$q = "INSERT INTO Members (`wp_users_ID`,`MemberID`,`Status`,`MiddleName`,`Nickname`,`Prefix`,`Suffix`,`HomeAddress`,`City`,`State`,`Zip`,`ExtendedZip`,`BadAddress`,`SpouseFirstName`,`SpouseMiddleName`,`HomePhone`,`CellPhone`,`WorkPhone`,`WorkPhoneExt`,`OfficePhone`,`OfficePhoneExt`,`Pager`,`Fax`,`Company`,`CompanyType`,`OfficeAddress`,`OfficeAddress2`,`OfficeCity`,`OfficeState`,`OfficeZip`,`OTYPECO`,`OSTAG`,`UPCODE`,`Region`,`Department`,`Classification`,`Retired`,`Industry`,`Comments`,`Officer`,`OfficerType`,`OfficerTitle`,`OUNIT`,`ReceiveEMagazine`,`CD`,`SD`,`AD`,`isOrganization`,`DEL`,`Dues`,`DataSource`) VALUES ((?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?));";
$stmt = $db->prepare($q);
if ( false === $stmt ) {
echo "<pre>";
print_r( $db );
echo "</pre>";
mysqli_report(MYSQLI_REPORT_ALL);
echo mysqli_error();
}
Run Code Online (Sandbox Code Playgroud)
实际显示任何内容的唯一部分是print_r($ db):
mysqli Object
(
[affected_rows] => -1
[client_info] => 5.1.73
[client_version] => 50173
[connect_errno] => 0
[connect_error] =>
[errno] => 0
[error] =>
[error_list] => Array
(
)
[field_count] => 1
[host_info] => …Run Code Online (Sandbox Code Playgroud) 我正在尝试设置一个 PHP 脚本,它可以从实时 webroot 之外的文件夹中提取文件(针对经过验证的用户)。问题是,执行此操作时,即使我使用正确的“Content-Type”标头,文件也会下载为application/octet-stream. 如果用户稍后尝试重新上传下载的文件,这会产生安全隐患,因为即使它实际上是 pdf,它也会被检测为应用程序(我的应用程序只允许上传某些 mime 类型)。
这就是我用来将文件拉入浏览器的方法:
$secret_file = "../attach/1/test.pdf";
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header("Content-Type: ".mime_content_type($secret_file));
header("Content-Disposition: inline; filename=\"test.pdf\";");
header("Content-Transfer-Encoding: binary");
readfile($secret_file);
Run Code Online (Sandbox Code Playgroud)
有趣的是,如果我通过浏览器以这种方式下载文件并在 Linux 中查看其属性,它会显示为“application/pdf”。但是,如果我使用 PHPmime_content_type()函数检查同一文件,它会读取为application/octet-stream.
我确实确认以这种方式检查原始文件(在将其拉出之前readfile)将其显示为application/pdf.
有没有什么方法可以readfile()在不改变mime类型的情况下使用?或者,是否有更好的选择?
编辑
回答一下评论中的一些问题:
Content-Type: application/pdf标头。readfile()在不更改文件的情况下使用(或类似的)呢?我试图使用PHP将GET请求中的OData参数发送到RESTful API.对此服务的格式正确的OData请求如下所示:
https://myapi.org/endpoint?filter=family_name eq 'Doe'
Run Code Online (Sandbox Code Playgroud)
看起来我应该CURLOPT_URL在发送请求之前将这些变量附加到我的末尾,但API服务似乎没有收到OData.
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 100);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('OSDI-API-Token:xxxxxxxxxxxx'));
curl_setopt($ch, CURLOPT_URL, "https://myapi.org/endpoint?filter=family_name eq 'Doe'");
$response = curl_exec($ch);
curl_close($ch);
echo "<pre>";
print_r($response);
echo "</pre>";
Run Code Online (Sandbox Code Playgroud)
输出是NULL.考虑到具有相同标题和相同Odata URL的相同请求在API的浏览器中搜索并找到正确的数据,这似乎是一个奇怪的响应.
任何人都可以确认这是否是通过cURL请求发送OData参数的正确方法?
php ×3
api ×1
curl ×1
mime-types ×1
mysqli ×1
odata ×1
prepare ×1
sql ×1
sql-server ×1
ssms ×1