草庐IT

PDO_ODBC

全部标签

PHP mysql PDO 在非可空列中设置 0 而不是在输入为空时引发异常

使用适用于mysql的PHPPDO更新具有空值的不可空字段时,我无法生成错误或异常。直接执行sql会产生预期的错误。PDO中的所有内容都会导致status_id字段的值被设置为0,而不是指示该字段不允许为空的异常或错误。$stmt_handler=$this->db_handler->prepare("UPDATEfaxesSETmetadata=:metadata,status_id=:status_id,created=:created,updated=:updated,content=:content,vendor_fax_id=:vendor_fax_idWHEREid=:id

mysql - HDBC ODBC MySQL - 查询仅在编译时失败

我的程序使用runghc运行,但同一程序在编译时始终失败,并出现错误“查询期间与MySQL服务器失去连接”。失败与长时间运行的查询无关(它是小表上的CREATEVIEW)。MySQL错误日志中没有任何内容,并且log_warnings=1。环境-ubuntu(13.04;-),本地数据库) 最佳答案 HDBC.ODBC必须使用“withRTSSignalsBlocked”来保护所有数据库访问操作,否则可能会出现我描述的随机故障。这一点得到了图书馆作者的有效证实。 关于mysql-HDBC

php - 重用 PDO 语句 var 使进程崩溃

我正在重用一个变量来存储两个不同的PDOmysql语句:$stmt=$dbh->prepare("SELECT....");$stmt->execute();$stmt=$dbh->prepare("UPDATE....");//crashhere://***Errorin`/opt/lampp/bin/httpd':free():invalidpointer:0xf4a028dc***//***Errorin`/opt/lampp/bin/httpd':free():invalidpointer:0xf4a028dc***//[MonJun0319:53:48.6916742013]

来自 R 的 MySQL odbc 超时

我正在使用R使用RODBC包从MySQL数据库中读取一些数据。然后处理数据并将一些结果发送回数据库。问题是服务器由于不活动而在大约一分钟后关闭连接,这是在本地处理数据所需的时间。它是共享服务器,因此主机不会增加超时时间。我认为有两种可能性可以解决这个问题1)在每个数据库事务之前打开一个连接并在之后立即关闭它2)每30秒左右向服务器发送一些小的“ping”命令,让服务器知道我还在那里。我可以很容易地实现第一个,但是不断打开和关闭连接似乎很慢。有人知道第二个有效的命令吗?或者更好的方法? 最佳答案 我更喜欢第一个解决方案。后者真的很难用

多语句查询中的PHP PDO错误

我在我的一个在线网络应用程序中遇到了这个问题。似乎如果您通过PHPPDO向MySQL发出多语句查询,并且第一条语句是插入语句,第二条语句是更新语句,则PDO::nextRowset()函数不会返回正确的数字结果集。(请注意,从PHP5.3开始,PDO应该支持每个MySQL查询的多个语句。)这是一个例子:SQL:createdatabase`test`charactersetutf8collateutf8_general_ci;createtable`test`.`testtable`(`id`int);PHP:prepare('insertintotesttable(id)values

php - 使用 MySQL 调试 PDO 准备的查询

这个问题在这里已经有了答案:WhydoesthisPDOstatementsilentlyfail?(1个回答)关闭3年前。我正在从mysql_*调用更改为使用PDO调用,但在开发新代码时我无法弄清楚如何调试我的实际SQL。在mysql_*调用下,我可以在PHP函数中编写一些SQL,并且可以echo实际的SQL以查看处理器正在处理什么。我没能在PDO库中找到这样的野兽。debugDumpParams看起来应该如此,但它不会返回绑定(bind)语句。我遇到的问题举例:在我的第一次尝试中,我绑定(bind)了一个字符串并在SQL语句中包含了引号,尽管绑定(bind)了一个data_type

PHP PDO MySQL 重复键更新多行和值

我有以下PDO查询,但不知何故无法使ONDUPLICATE部分工作。Slug是唯一键。$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);$db->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);$statement=$db->prepare("INSERTINTOplugins(name,slug,version,author,author_profile,rating,num_ratings,active_installs,downloaded,last_updated

使用 SSL 的 PHP Mysql 连接无法正常工作 PDO

Mysql服务器运行的是php5.3。新的网络服务器正在运行php7.1(从php5.3迁移而来)。当我尝试使用ssl连接Mysql服务器时,它不起作用。try{$dbh=newPDO($dsn,$user,$password,array(PDO::MYSQL_ATTR_SSL_KEY=>'/etc/mysql/client-key.pem',PDO::MYSQL_ATTR_SSL_CERT=>'/etc/mysql/client-cert.pem',PDO::MYSQL_ATTR_SSL_CA=>'/etc/mysql/ca-cert.pem'));echo"Connestiones

php - PDO 更新不替换准备好的语句中的占位符

我正在尝试使用以下代码更新表格。如果我更改WHEREtemp_booking_id=':temp_booking_id'");以使用实际的当前sessiontemp_id,查询将运行,但将占位符添加到表中(例如:check-out)作为值。$data保存了正确的值,但没有替换占位符。我盯着这个看了好几个小时,但终究无法找出问题所在,环顾四周,但没有找到解决方案。PDOStatement:errorInfo()正在返回PDOStatement::errorInfo():Array([0]=>00000)如果我删除占位符周围的引号,它会返回PDOStatement::errorInfo()

php - 将 LIKE 运算符与 % 一起用于 PDO 准备语句的关键字搜索

我正在尝试使用PDO准备语句编写关键字搜索。理想情况下,我想使用LIKE运算符来搜索字段值内的子字符串。这是我的代码:$statement=$this->db->prepare("select*fromwhateverwheretitlelike?orauthorlike?");$statement->execute(array("%$titleKeyword%","%$authorKeyword%"));$rows=$statement->fetchAll(PDO::FETCH_ASSOC);不幸的是,当我尝试这个时,$rows总是空的。但是,如果我将SQL复制到phpMyAdmin