草庐IT

PDO_mssql

全部标签

php - 来自带有 PDO 的存储过程的特定错误代码(在 Zend Framework 2 中)

我正在尝试启动并运行ZendFramework2中的存储过程。我尝试了returnanerrorcodewithanoutparameter在存储过程中,但我一直无法完成这项工作。然后我想当发生错误时,我可以在PHP中捕获异常。问题是我似乎无法访问特定错误代码-只有一般错误代码(例如23000-违反完整性约束)。这是我想要做(或类似)的一个例子:try{$result=$this->dbAdapter->query('CALLsp_register_user(?,?)',array('username','password'));}catch(\Exception$e){switch(

mysql - 如何在 Windows 上的 AppServ 上启用 PDO?

我第一次尝试使用PDO创建一个应用程序,当我try{$db=newPDO('mysql:host=localhost;dbname=DBname','user','pass');}catch(PDOException$e){echo'Failedtoconnecttodatabase.Pleasetrytorefreshthispagein1minute.However,ifyoucontinuetoseethismessagepleasecontactyoursystemadministrator.';echo''.$e->getMessage();exit();}当然,我已经将用户

PHP PDO 错误消息作为变量发送到电子邮件中

在PHP中从MySQL切换到PDO。过去,当运行查询但由于某种原因未执行时,我可以给自己发送一封电子邮件,邮件正文中包含mysql_error()消息,如下所示:$query="SELECTdogsFROManimals";$res=mysql_query($query);if(!$res){$error="ErrorMessage:".mysql_error();mail("my@email.com","DatabaseError",$error);}当网站上的数据库出现问题时,我会收到emil的提醒。我的PDO设置如下:setAttribute(PDO::ATTR_EMULATE_

php - mysql_fetch_assoc() 的 PDO 方法?

我曾经做过:$resource=mysql_query("SELECT*FROMtableWHEREid=".$id);$user=mysql_fetch_assoc($resource);echo"HelloUser,yournumberis".$user['number'];我读到mysql语句都已弃用,不应使用。我如何使用PDO执行此操作?第一行应该是:$stmt=$db->prepare("SELECT*FROMtableWHEREid=".$id);//therewasanaditionaldoublequoteinhere.$stmt->execute(array(':id

php - PDO 执行数组到字符串转换错误

当我尝试运行PDO执行时,出现数组到字符串的转换错误。执行必须输入一个是普通字符串,另一个是数组。这是我的代码:$id="1";$array=array("a","b","c");$in=str_repeat('?,',count($array)-1).'?';$sql1="SELECT*FROMtbl1AStb1RIGHTJOINtbl2AStb2ON(tb1.e_id=tb2.e_id)LEFTJOINtbl3AStb3ON(tb2.m_id=tb3.m_id)WHEREtb1.u_id=?ANDtb1.lettersIN($in)";$statement1=$db_handle-

PHP PDO : How long are prepared mysql queries cached?

如何利用准备好的语句来提高性能?我知道如果我把它放在一个循环中,这样的事情可能会有所帮助:SELECT`Name`FROM`Hobbits`WHERE`ID`=:ID;我读到过循环with准备好的语句比循环没有准备好的语句要快,但是否则准备好的语句会稍微降低性能。那么-这个循环有多大?如果我在代码的开头运行一个复杂的SQL查询,并在末尾使用一个不同的参数重复它——第二个查询会运行得更快吗?(我们为每个页面加载使用一个连接)。缓存查询是否有限制,所以我最好立即重复我的查询?使用完全相同的参数(重新加载页面或2个用户)执行整个脚本两次怎么样? 最佳答案

php - 在 PDO 中,如果将 int 引用为字符串,性能会有所不同吗?

如果在准备好的PDO查询中将整数绑定(bind)为字符串,性能会有所不同吗?在Mysql中,如果值被绑定(bind)为一个int或一个字符串,查询就可以工作,但是在性能上有什么不同,或者这样做时有什么陷阱吗?$pdo=newPDO("mysql:host={$host};port={$port};dbname={$dbname};charset=utf8",$username,$password);$statement=$pdo->prepare("SELECT*FROM`table`WHERE`id`=:param");//Isthereanyperformancedifferenc

php - 让 pdo_mysql 驱动程序在 CLI 中工作

我在CLI中遇到pdo_mysql扩展的问题。我正在使用本地LAMPP安装并制作一个info.php文件,我可以看到我启用了PDO和mysql驱动程序。但是当我在命令行中编写php--rimysql时,它返回Extension'mysql'notpresent。我已经阅读了php.ini,一个是用于CLI的,另一个是为浏览器加载的,我看不出pdo配置有什么不同。PDO已为CLI激活,但pdo_mysql未激活,我找不到任何pdo_mysql.so文件或任何其他文件或行来告诉我为什么它在浏览器中工作而不是在cli中工作。有帮助吗?非常感谢。 最佳答案

php - PDO:调用未定义的方法 DB::query()

试图掌握PDO但目前没有太多乐趣。我敢打赌这也非常简单。编辑:执行此操作的更好方法是什么?即而不是将它包装在一个类中?类/DB.class.php:getMessage();}}}?>包括/global.inc.php:connect();?>索引.php:query("SELECT*FROMusers");echo"";print_r($STH->fetch());?> 最佳答案 您的数据库类中没有数据库属性和query()方法。像这样添加它:classDB{protected$db_name="PDO";protected$db

php - 此 PDO 代码如何防止 SQL 注入(inject)?

所以我正在研究整个PDO事情,并且在阅读这篇博客教程时遇到这段代码,解释是如果我将PDO与数据绑定(bind)一起使用-用户将无法添加SQL注入(inject)。这是如何工作的?#noplaceholders-ripeforSQLInjection!$STH=$DBH->("INSERTINTOfolks(name,addr,city)values($name,$addr,$city)");#unnamedplaceholders$STH=$DBH->("INSERTINTOfolks(name,addr,city)values(?,?,?);#namedplaceholders$ST