我使用Zend_Db_Table来管理我的MySQL连接。它们工作得很好,但只有一个巨大的安全问题。
如果出现错误,比如MySQL关闭,ZF会抛出一个异常,显示db连接用户名和密码。
例如,我在配置中设置了错误的db密码。这是抛出的异常。
exception 'PDOException' with message 'SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: YES)' in /Users/claudiocani
我正在使用Kohana 2。我想捕获一个数据库异常,以防止在无法建立到服务器的连接时出现错误页面。
显示的错误是
system/libraries/drivers/Database/Mysql.php [61]:
mysql_connect() [function.mysql-connect]: Lost connection to MySQL server at
'reading initial communication packet', system error: 110
此时根本无法访问数据库服务器。
我是从一个模型开始做这个的。我都试过了
public functi
我将Python与MySQL和Django结合使用。我一直看到这个错误,我不知道异常是在哪里抛出的:
Exception _mysql_exceptions.ProgrammingError: (2014, "Commands out of sync; you can't run this command now") in <bound method Cursor.__del__ of <MySQLdb.cursors.Cursor object at 0x20108150>> ignored
我的代码中有许多“尝试”和“异常”块--如果
我正在执行一个简单的NUnit测试,并且希望确认在我的方法中没有异常。但是,此方法将返回一些内容:我希望测试返回的值以及。
下面是我的现有代码,用于测试异常(这是可行的!):
// This works
[Test]
public void AbleToGetTheDatabaseNames()
{
Assert.That( () => GetTheDatabaseNames(), Throws.Nothing);
}
private List<string> GetTheDatabaseNames()
{
var mySql = new MySqlDb();
我有一个这样的块:
begin
# some SQL request
rescue Mysql::Error => e
logputs "Mysql::Error occurred, retrying in 10s: #{e.message}"
sleep 10
retry
end
但是,当出现“与MySQL服务器的连接丢失”错误时,此块无法捕获该错误并重试( MySQL服务器重新启动)。你知道我怎样才能正确地捕捉这个异常吗?
谢谢!
我已经在我的MacBook上手动安装了PHP,Apache和MySQL,我正在阅读一本关于如何在不使用phpMyAdmin的情况下创建表格的书。我的脚本似乎没有创建DNS,但是,它没有抛出任何异常。有什么建议吗伙计们?提前谢谢。
这是我的代码:文件名: setup.php
<?php
print("Created.\n"); // This statement prints
$db = new PDO("mysql:host=localhost;dbname=MyBlog", "username", "passwo
我的Java有点生疏,我想提高代码的质量。我想处理异常情况下的可预期错误,但实际上不知道如何处理。
我意识到尝试捕捉。但我的总是这样,没有任何处理:
try { ...}
catch (SQLException e) {
e.printStackTrace();
System.exit(1);
}
我在MySQL中使用Java,并得到了以下具体错误:
com.mysql.jdbc.MysqlDataTruncation: Data truncation:
Data too long for column 'column_name'
很明显,该值太大,需要截断。当然,
我想知道在我的Zend Framework + Doctrine 2MVC应用程序中,我应该在哪里抛出异常。
这是我的设计:
数据库- MySQL >对象/对象模型(Doctrine2) >服务>控制器
我的服务在参数中接受服务对象,并返回几乎所有方法的服务响应对象。
服务响应返回状态、消息和数据,这些数据可以是您想要的任何内容。
我的控制器使用这些服务。
我想知道我应该在哪里抛出我的异常。
示例:
public function getAllMembers(ServiceObject $data)
{
// do some mapping with $data
$u
我在JDBC中使用以下连接字符串连接到MySQL。
jdbc:mysql://127.0.0.1/db?enable-named-pipe&socket=MySQL&socketFactory=com.mysql.jdbc.NamedPipeSocketFactory&zeroDateTimeBehavior=convertToNull
如果我使用tcp/ip连接,我可以很好地关闭连接,但是如果我使用本地套接字/管道连接到MySQL,它似乎抛出了以下异常。
java.netSocketException: Socket is not connected
连接似乎在我不需
我不知道如何在下面的代码中捕获PDOException,请告诉我在下面的代码中在哪里抛出异常?
我有(目录):
- folder
-1) b.php
-2) c.php
- autoloader
在b.php中:
<?php
namespace folder;
use folder as x;
require_once '../autoload.php';
class b{
function __construct(){
print("<p>you are in class b<p/>
我正在尝试在laravel 3中捕获PDOException,但似乎我做不到这一点。我的代码如下:
try{
DB::connection()->pdo->beginTransaction();
Myobject::create($cleaned_input_array);
// do other stuff that could possibly throw a custom exception
DB::connection()->pdo->commit();
}
catch(\PDOException $e)
{
DB:
我想为一个特定的异常添加一些处理
Zend_Db_Statement_Exception' with message
'SQL ERROR: SQLSTATE[HY000]: General error: 2006 MySQL server has gone away
我更喜欢在相当低级的地方对异常消息进行字符串比较,这样在我的应用程序逻辑中,我就可以简单地捕获像My_Module_Exception_MysqlGoneAway这样友好的异常,而不是让捕获异常子句将字符串比较散布在我的应用程序逻辑中。
因此,在这种特殊情况下,错误是由load()方法触发的,因此我可以重写Ma