草庐IT

PDO-ODBC

全部标签

php - PDO 查询绑定(bind)字符串而不是整数返回结果

我有一个带有自动递增id的表,当我偶然发现PDO或mysql似乎将数组中的字符串转换为整数的问题时,我正在测试几个场景。有谁知道为什么吗?如果我的查询如下:$check=$db->prepare("SELECT*FROMtbl_testWHEREid=:id");$check->execute(array(':id'=>1));它检索到1条记录-一切正常,但如果查询使用了一个字符串,要么是有意为之,要么是错误的,如下所示:$check=$db->prepare("SELECT*FROMtbl_testWHEREid=:id");$check->execute(array(':id'=>

php - PDO : Error not caught when executing prepared statement 故障排除

这个问题在这里已经有了答案:WhydoesthisPDOstatementsilentlyfail?(1个回答)关闭1年前。我在使用PDO时遇到了问题,因为没有捕获到错误。代码很简单并且工作得很好,我将包含一个示例以避免混淆:$sql='INSERTINTOsomedatetable(something)VALUES(:something)ONDUPLICATEKEYUPDATEsomething=:something';$values=array(":something"=>$something);try{$stmt=$dbh->prepare($sql);$stmt->execut

c# - 包括 MySQL Connector/ODBC 5.1 到 C# 应用程序

我在连接字符串中使用带有“Driver={MySQLODBC5.1Driver}”的System.data.odbc。但是,我还没有意识到我的PC上安装了MySQL连接器,所以我没有引用它,没有它它就无法工作。现在我需要将其嵌入到应用程序中进行分发。我已经下载了MySQL连接器/ODBC5.1文件,但是添加引用时它说“该文件不可访问...确保其有效的COM..”等。谢谢 最佳答案 MySQLConnector/ODBC顾名思义,它只是一个用于连接MySQL的ODBC驱动程序。它不是专门为.NET设计的,您不能以任何方式将它嵌入到您的

mysql - Magento:将 PDO 结果变成 Varien 对象

我有一个使用“core_read”和查询方法调用的存储过程。然后使用fetchAll(PDO::FETCH_ASSOC)收集结果。数据出来的很完美。我可以在数组上执行foreach,并通过数组键($row['name'])访问数据。我想将关联数组转换为Varien_Object,这样我就可以使用$row->getName()符号访问数据...保持Magento样式...我将如何执行这样的转换,如果可能吗? 最佳答案 将数组传递给Varien_Object的构造函数$object=newVarien_Object($array);请参

mysql - [警告]:PDO::__construct():MySQL 服务器已经消失 - wait_timeout 不是原因?

我希望这里有人可以帮助解决我在网络服务器上遇到的问题。目前服务器托管我们为帮助台购买的Web应用程序。每8小时,当有人导航到该页面时,他们将看到此错误:[Warning]:PDO::__construct():MySQLserverhasgoneaway(Database/class.SWIFT_Database.php:334)我已经尝试将wait_timeout设置为/etc/my.cnf文件中的最大值;wait_timeout=31536000我还从mysql中将全局wait_timeout设置为此值并将sessionwait_timeout设置为相同值。我注意到一些奇怪的行为,

php - PDO - 检查行是否更新?

其他人已经问过这个问题,但我的问题更具体一些。我有这个问题:$sql="UPDATEtableSEToption=?WHEREnumber=?";$q=$conn->prepare($sql);$q->execute(array($option,$number));$q->setFetchMode(PDO::FETCH_BOTH);echo$q->rowCount();如果WHEREnumber已经存在并且SEToption相同,则$q->rowCount()等于0如果WHEREnumber不存在且行不更新,$q->rowCount()等于0如何区分这些非更新?

php - 使 pdo::query 静态

当我运行下面的代码时出现这个错误。我通常使用msql函数,但我尝试改用PDO。怎么了?fatalerror:第14行无法静态调用非静态方法PDO::query() 最佳答案 ::符号用于调用定义为静态的方法,这意味着您无需创建对象的实例来调用该方法。query()方法不是静态的,这意味着您需要先创建PDO对象,然后对该对象调用query()方法。这应该是这样的:$dsn='mysql:dbname=testdb;host=127.0.0.1';$user='dbuser';$password='dbpass';$pdo=newPDO

mysql - 如何在 PDO 中使用 ON DUPLICATE KEY UPDATE 和 mysql?

详情我正在为新的或更新的许可证的到期做一个单一的插入。到期时间为插入日期起2年。如果检测到重复项,条目将更新,到期时间等于剩余到期时间加上2年。关于重复项,在下面的示例中,应该只有一行包含user_id=55和licence=commercial。表:licence_expiry--------------------------------------------------------|user_id|licence|expiry|--------------------------------------------------------|55|commercial|2013-

php - 检查用户名是否存在 PDO

我如何才能同时检查多个因素而不是检查每个因素?所以基本上我使用的是PDO,我必须确保用户名和电子邮件是唯一的。那我该怎么做呢?我见过if($sthandler->rowCount()>0){//dosomethinghere}但是有没有更好的方法呢?另外,如果没有人可以解释我将如何处理它。编辑这是我输入到数据库中的查询代码setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);}catch(PDOException$e){exit($e->getMessage());}$name=$_POST['name'];$username=$

php - 时间戳自动更新不适用于 ON DUPLICATE KEY UPDATE (PDO)

我有一个时间戳设置为自动更新的表格作品集。CURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMPPHP中的PDO语句不会导致时间戳更新。$statement=$this->connection->prepare("INSERTINTOfolio(publication,productId)VALUES(:publication,:productId)ONDUPLICATEKEYUPDATEid=LAST_INSERT_ID(id),publication=:publication,productId=:productId");遵循手动方法可行但不可取。$s