我有一个NodeJS应用程序,我用TypeScript编写.它使用许多Node包.并非所有这些包都有Typescript定义,因此我使用Typings来获取单独的定义文件.
当我部署应用到生产服务器,我有一个运行一个Git挂钩npm install,typings install和tsc,因为这些都不是在Git仓库包括在内.
当在DefinitelyTyped上发布新版本的Typings定义文件时,我会在运行时收到警告typings install,我的定义文件已被弃用(更新,替换或删除):
typings WARN deprecated 6/30/2016: "registry:dt/bluebird#2.0.0+20160319051630" is deprecated (updated, replaced or removed) typings WARN deprecated 7/5/2016: "registry:dt/knex#0.0.0+20160622193910" is deprecated (updated, replaced or removed) typings WARN deprecated 7/20/2016: "registry:dt/node#6.0.0+20160613154055" is deprecated (updated, replaced or removed) typings WARN deprecated 7/19/2016: "registry:dt/lodash#3.10.0+20160619033623" is deprecated (updated, replaced or removed)
关于这个还能做什么?有没有一种简单的方法来更新它们?看起来typings.json文件指定#符号后面的包的版本号和+号后面的日期.如果新的定义文件上传到DefinitelyTyped,假设它比以前的版本更准确或更完整通常是否安全?
是否有任何制裁方式手动更新这些,除了typings uninstall --save后面的typings install --save每个包?看起来像一个麻烦,应该有一些简单的方法,如typings update [package-name].
在Microsoft SQL Server Management Studio(SSMS)中,可以右键单击表,然后转到Script Table as- > SELECT To,然后为生成的脚本选择目标.
DataGrip中有类似的东西,还是可以通过某种方式自定义创建?
我觉得这个有用的原因是因为我经常发现我正在使用一个包含很多列的表,我想要选择除了少数几个之外的所有列.因此,让它更容易生成SELECT语句,并明确列出所有列,这样我就可以直接删除那些我不想要的列.
目前,我在DataGrip中的解决方法是右键单击该表,然后选择Copy DDL.这将生成CREATE TABLE语句,该语句列出所有列,但它还包括列定义.所以我必须做一个正则表达式替换或运行一个宏来摆脱额外的信息,这是一种痛苦.有没有人有更好的解决方案?
我想创建一个数据库.为什么不使用此代码创建数据库?
$dbname = 'regulations_db';
$con = mysql_connect("localhost","root","pass");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
if (mysql_num_rows(mysql_query("SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '". $dbname ."'"))) {
echo "Database $dbname already exists.";
}
else {
mysql_query("CREATE DATABASE '". $dbname ."'",$con);
echo "Database $dbname created.";
}
Run Code Online (Sandbox Code Playgroud)
这是有效的,但我认为第一个是最好的做法:
if (mysql_query("CREATE DATABASE IF NOT EXISTS regulations_db",$con))
{
echo "Database created";
}
else
{
echo "Error creating database: " . mysql_error();
}
Run Code Online (Sandbox Code Playgroud) 使用FB4,我想改变一个开放的火花DropDownList的高度.默认情况下,它在滚动前最多显示6个项目.我的下拉列表包含7个项目,因此我想更改打开的下拉列表的高度以适应所有7项而不滚动.作为一种解决方法,我已经改变了项目的字体大小,使它们更小,所有7都适合,但较小的字体看起来不太好.有没有办法改变这个高度?我对Flash很新,所以如果它是一个复杂的解决方案,请详细说明:-).
我知道问题How do I secure my database connection credentials?已被多次询问和回答(例如,如何在PHP中保护数据库密码?).
该问题的一个普遍接受的答案是将详细信息存储在Web根目录之外.但我很好奇为什么这真的有很大的不同.
根据我的理解,一个人无法通过HTTP下载PHP文件的源代码(除非您的Web服务器配置不正确,但您会立即知道).因此,除非您无论如何都可以访问PHP文件的源代码,否则您将无法看到凭据.如果我错了,请纠正我,但这不是基本上意味着你需要shell访问吗?如果你有shell访问权限,那么你不能直接访问web root之外的文件吗?
如果该问题的答案是包含文件可能具有除了Web服务器用户之外不允许任何人读取它的特殊权限,那么(考虑到我有shell访问权限),我不能只写(或修改)任何PHP文件只是回显这些凭据?
所以问题是,是否将凭证直接存储在PHP脚本中而不是存储在Web根目录外的文件中是否真的有所不同?
我想使用JavaScript在URL中传递不同的参数来重新加载页面.
我的页面名称是test1.aspx,我用过:
window.location="test1.aspx?user=abc&place=xyz";
Run Code Online (Sandbox Code Playgroud)
它不起作用...... !!!
我很惊讶我无法通过搜索找到这个问题的直截了当的答案.
我有一个PHP的Web应用程序,它接受用户输入.由于应用程序的性质,用户可能经常使用扩展的ASCII字符(也称为"ALT代码").
我目前的具体问题是使用ALT代码26,这是一个右箭头(→).这将伴随其他文本存储在同一字段中(例如,'this?that').
我的列类型是NVARCHAR.
这是我尝试过的:
我尝试过不进行转换,只是正常插入值,但值存储为thisâ??that.
我尝试使用PHP将值转换为UCS-2 iconv('UTF-8', 'UCS-2', $value),但是我收到了一个错误Unclosed quotation mark after the character string 't'..查询最终看起来像这样:UPDATE myTable SET myColumn = 'this?!that'.
我已尝试进行上述转换,然后在引用值之前添加N,但我收到相同的错误消息.查询如下所示:UPDATE myTable SET myColumn = N'this?!that'.
我已经尝试删除UCS-2转换,只是在引用值之前添加N,并且查询再次起作用,但值存储为thisâ that.
我尝试utf8_decode($value)在PHP中使用,但随后箭头被替换为问号.
所以任何人都可以回答(看似简单的)问题,如何将这个值存储在我的数据库中,然后按照最初输入的方式检索它?
我正在使用PHP 5.5和MSSQL 2012.如果驱动程序/操作系统版本的任何问题发挥作用,它是通过FreeTDS连接的Linux服务器.没有可能改变这一点.
我无法从PayPal文档中找到关于此的明确答案.
根据文件:
原始交易中返回的PNREF在参考交易中有效期为12个月.
我希望避免要求我的客户每12个月重新输入一次信用卡信息.
所以我想做的是做一个零美元的授权来存储初始的PNREF,然后在每次进行参考交易时更新该客户的PNREF值.因此,只要客户连续12个月没有交易,他们就不必重新输入他们的卡信息.
无法通过Google找到可能的答案.有谁知道你是否可以使用参考交易中的PNREF作为另一个参考交易的ORIGID?
我正在构建一个简单的商店系统,它从csv文件生成的数组中获取其产品.
我的csv如下:
pid;name;color
11149;Miro;"schwarz;weiß;blau;rot;gelb"
11004;FritzHansen;"buche;nussbau;schwarz;weiß;blau;hellblau;rot;grün;gelb;retro"
Run Code Online (Sandbox Code Playgroud)
我正在使用以下脚本
if (($handle = fopen('_products.csv', 'r')) === false) {
die('Error opening file');
}
$headers = fgetcsv($handle, 256, ';');
$_products = array();
while ($row = fgetcsv($handle, 256, ';')) {
$_products[] = array_combine($headers, $row);
}
fclose($handle);
Run Code Online (Sandbox Code Playgroud)
产生这个数组:
Array
(
[0] => Array
(
[pid] => 11149
[name] => Miro
[color] => schwarz;weiß;blau;rot;gelb
)
[1] => Array
(
[pid] => 14215
[name] => 1800
[color] => schwarz;anthrazit
)
[2] => Array
(
[pid] => 11004
[name] => FritzHansen …Run Code Online (Sandbox Code Playgroud) 这个问题的评论让我想到了什么.什么时候该$(document).ready()功能开火?显而易见的答案是"当文件准备就绪时",但究竟是什么时候?
例如,如果我在PHP继续执行时打开输出缓冲并刷新输出,那么不会将输出发送到浏览器吗?那么,在PHP脚本执行完毕之前,文档是否可以准备就绪,或者事件是否等到请求完成之后?
编辑:
响应似乎基本上同意当客户认为它准备就绪时事件会发生.
为了更好地理解(我本来应该首先做的),我只是设置了一个测试:
<?php ob_start(); ?>
<html>
<head>
<script type="text/javascript" src="lib/js/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
alert("READY");
});
</script>
</head>
<body>
<?php
ob_flush();
for ($i=0; $i<999999; $i++) {
echo "HELLO$i\n";
ob_flush();
}
?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
结果是在这个例子中,内容立即开始在页面上显示,但是在循环完成之前警报没有发生,或者脚本超时(30秒).
为了取决于您使用的浏览器,我尝试在我的循环中插入:
if ($i == 99) {
echo "</body></html>";
}
Run Code Online (Sandbox Code Playgroud)
Chrome似乎通过将这些标签放在页面的末尾来自动纠正它(如Web开发检查器中所示).查看页面的来源显示它在中间,我在那里回应它.
php ×6
javascript ×2
sql-server ×2
apache-flex ×1
credentials ×1
database ×1
datagrip ×1
events ×1
fgetcsv ×1
flex-spark ×1
freetds ×1
height ×1
jquery ×1
mysql ×1
npm ×1
payflowpro ×1
paypal ×1
php-5.5 ×1
rowcount ×1
security ×1
sql ×1
typescript ×1
webserver ×1