问题列表 - 第2451页

PHP5:调用外部函数和记录错误

我是PHP的新手,并试图在我的本地网站上设置phpBB.我有一个apache2和php5的股票debian安装.phpBB安装程序运行正常,连接到数据库并创建其所有表没有问题.但是当我尝试打开登录页面时,我得到了一个0字节的响应.

一点点挖掘表明它永远不会超过对mysql_pconnect()的调用.php二进制文件只是退出而没有错误或消息.什么都没有.我尝试运行以下代码:

<?php
$id = @mysql_pconnect('localhost','myusername', 'mypassword', true);
print "id=".$id."\n";
?>
Run Code Online (Sandbox Code Playgroud)

并且"id ="字符串永远不会打印.它什么都不做.我不知道在哪里可以看到发生了什么错误,或者发生了什么.所有我安装的都是使用pear的"mysql"...也许我错过了其他的东西?

这必须是某个地方的路径问题.mysql扩展很好地构建了

/usr/lib/php5/20060613+lfs/mysql.so
Run Code Online (Sandbox Code Playgroud)

回答:

jishi:告诉我"@"运算符会抑制输出,包括错误消息(@echo off,any?)

tomhaigh:必须在php.ini文件中显式启用扩展.将行"extension = mysql.so"添加到php.ini后,以下代码运行正常:

% cat d.php 
<?php
ini_set('display_errors', true);
error_reporting(E_ALL | E_NOTICE);
$id = mysql_pconnect('localhost','myusername', 'mypassword', true);
print "id=".$id."\n";
?>
% php -c /etc/php5/apache2/php.ini  d.php
id=Resource id #4
Run Code Online (Sandbox Code Playgroud)

喜悦!

php mysql pear

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

存储过程错误附近的语法不正确

我正在更新一长串记录.在我的代码中,一切都按预测运行,直到执行查询.我得到了

'TempUpdatePhysicalCityStateZip'附近的语法不正确

(我的存储过程名称).我已经使用SQL Server Management Studio对其进行了测试,运行正常.所以,我不太确定我错在哪里.下面是我的存储过程和代码:

ALTER PROCEDURE [dbo].[TempUpdateCityStateZip] 
    @StoreNo nvarchar (11),
    @City nvarchar(50),
    @State nvarchar(2),
    @Zip nvarchar(5)    
AS
BEGIN
    SET NOCOUNT ON;

    UPDATE StoreContact
    SET City = @City, State = @State, Zip = @Zip
    WHERE StoreNo = @StoreNo
END
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

Dictionary<string, string> CityStateZipList = getCityStateZipList(dbPath);

using (SqlConnection conn = new SqlConnection(dbPath))
{
    conn.Open();

    SqlCommand cmdUpdate = new SqlCommand("TempUpdateCityStateZip", conn);

    foreach (KeyValuePair<string, string> frKeyValue in CityStateZipList)
    {
        cmdUpdate.Parameters.Clear();

        string[] strCityStateZip = frKeyValue.Value.Split(' ');
        cmdUpdate.Parameters.AddWithValue("StoreNo", frKeyValue.Key.ToString());

        foreach (String i in strCityStateZip) …
Run Code Online (Sandbox Code Playgroud)

sql-server ado.net stored-procedures .net-3.5

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

C#10秒后禁用控件的最简单方法是什么?定时器还是秒表?

C#10秒后禁用控件的最简单方法是什么?使用计时器还是秒表?我是新手,所以感谢你的帮助.

c# timer

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

C++字符串操作

我缺乏C++经验,或者说我在垃圾收集语言中的早期学习实际上是在刺激我,我在使用C++中的字符串时遇到了问题.

为了说清楚,使用std :: string或equlivents不是一个选项 - 这是char*的所有方式.

所以:我需要做的是非常简单,基本上归结为连接字符串.在运行时我有2个类.

一个类包含基本文件名形式的"类型"信息.

在标题中:

char* mBaseName;
Run Code Online (Sandbox Code Playgroud)

然后,在.cpp中,它加载了从其他地方传入的信息.

mBaseName = attributes->BaseName;
Run Code Online (Sandbox Code Playgroud)

第二类以后缀形式提供基本文件名的版本信息,它是一个静态类,目前实现如下:

static const char* const suffixes[] = {"Version1", "Version", "Version3"}; //etc.

static char* GetSuffix()
{
    int i = 0;
    //perform checks on some data structures
    i = somevalue;
   return suffixes[i];
}
Run Code Online (Sandbox Code Playgroud)

然后,在运行时,基类创建它需要的文件名:

void LoadStuff()
{
    char* suffix = GetSuffix();
    char* nameToUse = new char[50];
    sprintf(nameToUse, "%s%s",mBaseName,suffix);

    LoadAndSetupData(nameToUse);
}
Run Code Online (Sandbox Code Playgroud)

你可以立即看到问题.nameToUse永远不会被删除,内存泄漏.

后缀是固定列表,但是基本文件名是任意的.创建的名称需要持续超出"LoadStuff()"的末尾,因为不清楚何时以及如何使用它.

我可能担心太多,或者非常愚蠢,但是在其他地方也会发生与LoadStuff()类似的代码,因此需要解决.这令人沮丧,因为我对于看待安全和"非hacky"解决方案的工作方式还不太了解.在C#中,我只想写:

LoadAndSetupData(mBaseName + GetSuffix());
Run Code Online (Sandbox Code Playgroud)

而且不用担心.

任何评论,建议或建议非常感谢.

更新

我调用LoadAndSetupData()的代码的问题是,在某些时候它可能会复制文件名并将其保留在本地,但实际的实例化是异步的,LoadAndSetupData实际上将事物放入队列中,至少在那时,它期望传入的字符串仍然存在.

我不控制这段代码所以我无法更新它的功能.

c c++ string character

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

如何在静态类中重写ToString?

我有一个公共静态类,我希望有一个ToString()方法.

我已将其定义为公共静态字符串ToString(),但得到以下警告:

'Class.ToString()'隐藏继承的成员'object.ToString()'.要使当前成员覆盖该实现,请添加override关键字.否则添加新关键字.

如果我添加override关键字,我会收到此错误:

静态成员'Class.ToString()'不能标记为覆盖,虚拟或抽象

如何摆脱该警告并让我的静态类具有ToString()方法.

谢谢,
基思

.net c# static overriding

10
推荐指数
1
解决办法
9546
查看次数

我应该使用CASCADE DELETE规则吗?

重复:何时/为什么在SQL Server中使用级联?

我总是害怕使用DELETE CASCADE,但随着我越来越自信(懒惰:D),我在想它有多糟糕,最好的做法是使用它还是我应该避免它并清理我的外键等老式方式(带存储过程)?

sql sql-server cascade

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

在bash提示符中向后退

我希望在我的bash提示符之后和Mac上的输出之前有一个空行.它应该看起来像这样:

echo; ls
Run Code Online (Sandbox Code Playgroud)

我可以在我的bash提示符中添加换行符然后返回一行以等待用户输入吗?有什么明显的东西我不见了吗?

bash prompt

7
推荐指数
2
解决办法
4515
查看次数

使用参数化Alter Database命令时@ [参数名称]附近的语法不正确

我正在尝试使用以下代码删除SQL Server数据库:

SqlCommand command = new SqlCommand("USE MASTER; ALTER DATABASE @database SET SINGLE_USER WITH ROLLBACK IMMEDIATE; DROP DATABASE @Database", connection);
command.Parameters.AddWithValue("@database", TestingEnvironment.DatabaseName);
command.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)

当我执行它时,我收到错误:

'@database'附近的语法不正确.关键字'with'附近的语法不正确.如果此语句是公用表表达式或xmlnamespaces子句,则必须以分号结束前一个语句.'IMMEDIATE'附近的语法不正确.

我究竟做错了什么?

.net sql-server ado.net

0
推荐指数
1
解决办法
1727
查看次数

什么可能导致dynamic_cast崩溃?

我有一段看起来像这样的代码:

TAxis *axis = 0;
if (dynamic_cast<MonitorObjectH1C*>(obj))
   axis = (dynamic_cast<MonitorObjectH1C*>(obj))->GetXaxis();
Run Code Online (Sandbox Code Playgroud)

有时会崩溃:

Thread 1 (Thread -1208658240 (LWP 11400)):
#0  0x0019e7a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
#1  0x048c67fb in __waitpid_nocancel () from /lib/tls/libc.so.6
#2  0x04870649 in do_system () from /lib/tls/libc.so.6
#3  0x048709c1 in system () from /lib/tls/libc.so.6
#4  0x001848bd in system () from /lib/tls/libpthread.so.0
#5  0x0117a5bb in TUnixSystem::Exec () from /opt/root/lib/libCore.so.5.21
#6  0x01180045 in TUnixSystem::StackTrace () from /opt/root/lib/libCore.so.5.21
#7  0x0117cc8a in TUnixSystem::DispatchSignals ()
   from /opt/root/lib/libCore.so.5.21
#8  0x0117cd18 in SigHandler () from /opt/root/lib/libCore.so.5.21 …
Run Code Online (Sandbox Code Playgroud)

c++ crash dynamic-cast casting

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

在Windows中创建临时目录?

在Windows中获取临时目录名称的最佳方法是什么?我看到我可以使用GetTempPathGetTempFileName创建一个临时文件,但有没有相当于Linux/BSD mkdtemp函数来创建一个临时目录?

.net c# windows temporary-directory

119
推荐指数
7
解决办法
7万
查看次数