草庐IT

pdo_mysql

全部标签

php - 如何将 mysql_real_escape_string 转换为 PHP7?

我使用Wordpress在PHP7.0.11上运行了一个Wordpress系统。我想使用的插件不起作用,检查日志确实会导致PHPFatalerror:UncaughtError:Calltoundefinedfunctionmysql_real_escape_string()in…查找此错误消息,我发现mysql_real_escape_string()扩展名已弃用。如何将此语句转换为在PHP7及更高版本中工作?$ids=mysql_real_escape_string($ids);$result=$wpdb->query("DELETEFROM$table_nameWHEREidIN

php - 在涉及 PDO 事务的嵌套原子操作方面需要帮助

我有两个可以独立使用的不同模块,但是Module2依赖于Module1。模块2有一个操作需要是原子的,它调用模块1中的一个操作也需要是原子的。假设我已将PDO::ATTR_ERRMODE设置为PDO:ERRMODE_EXCEPTION,以下高度通用化和截断的代码会产生以下结果:PHPfatalerror:未捕获的异常“PDOException”和消息“已经有一个事件事务”模块1:pdo->beginTransaction();try{$stmt=$this->pdo->prepare(...);...$this->pdo->commit();}catch(Exception$ex){$

php - PDO PARAM_STR 和长度

我不明白PDOPARAM_*语句中的长度选项。长度是否表示所需字符的数量,还是最大值?例子:$sth->bindParam(2,$color,PDO::PARAM_STR,12);这需要12个字符,还是限制为12个字符?或者,我是否完全误解了这是在做什么? 最佳答案 它表示您希望在输出参数中接收多少数据,服务器不会发送超过此数量的数据。因此,要回答您的问题,这是一个限制而非要求。 关于php-PDOPARAM_STR和长度,我们在StackOverflow上找到一个类似的问题:

php - 制作用于 Hook PDO 查询的 databaseDo() 函数

所以我开始了thistutorial作为PHPPDO的介绍。到目前为止,我只处理过基本的mysql_*类型查询。我注意到,在整个教程中,connect->doaction->disconnect模式不断重复,只有doaction部分发生了变化。在现实世界中,通过创建一个可以将查询传递到其中的函数来消除重复是否是个好主意?例如:处理查询的函数:getMessage();}?>然后,假设我想执行PDO教程第一个示例中的操作,我会这样设置:exec($query);echo$exec;};//PerformactiondatabaseDo($insert);?>$dbh的范围我使用$dbh作

php - 带有 IN(?) 的 mySQL bind_param

这个问题在这里已经有了答案:Howtobindanarrayofstringswithmysqlipreparedstatement?(6个答案)关闭去年。在所有查询中使用bind_param,我现在想使用IN(?),其中列表中的元素数量可以变化。我在这里使用的SQLout函数基本上执行$sql_db->prepare、->bind_param、->execute(),->store_result(),->bind_result//thecodebelowdoesnotworkasthequeryonlymatchesonelement'a':$locations=('a','b','

PHP 无法加载动态库 "php_pdo_oci.dll"

我在Windows8上运行Apache2.4.7和PHP5.5.9。我安装了PHPUnit,这个警告图像“警告”开始弹出。是的,我在php.ini和“extension_dir”中启用了扩展加载以更正文件夹,并且该文件夹中有一个名为“php_pdo_oci.dll”的文件。我尝试使用不同的apache和php版本,但没有帮助。有什么解决方法的建议吗? 最佳答案 ..._oci.dll是OracleC接口(interface)的一部分。除非你需要使用Oracle,否则我建议你去php.ini文件中的相关行,取消注释这个扩展的加载。但是

php - PDO : insert 3 rows instead in mysql when i insert just 1 row

我在我的php框架(flight)中使用PDO,但我遇到了一个荒谬的问题。当我将1行插入mysql时,我看到插入了3行。Flight::db()->query("INSERTINTO`menu_item`(`order`,`menu_cat_id`)VALUES(22,1)");这是我的全部代码:setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);$db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND,"SETNAMES'utf8'");$db->exec("SETNAMES'utf8';"

PHP PDO - mysqli_num_rows 的替代方案

在mysqli中,我可以使用mysqli_num_rows从选择查询中获取行数。我找不到不用像SELECTCOUNT(*)这样的单独查询就可以用PDO做到这一点的方法吗?当我已经有一个记录集时,我看不到进行单独查询的意义。 最佳答案 您可以按照记录使用SQL_CALC_FOUND_ROWShere.例如:$result=$db->prepare("SELECTSQL_CALC_FOUND_ROWSid,nameFROMfruitWHEREcalories>100");$result->execute();$result=$db->p

【MYSQL】binlog安全清理的两种方法

通常在交付MYSQL数据库前会将日志目录与数据文件分开,为其单独设立一个文件系统,这样便于掌握日志与数据的空间使用情况。如果不是业务突然增长,binlog会按照默认设置的过期时间自动被清理,但是有时候业务量增长是很突然的,比如上线了一个活动等,所以设置binlog自动清理是每个MYSQL管理员必须要做的一件事情。两种binlog清理方法的选择按MYSQL8.0官方手册的说法,purgebinarylog和expire_logs_senconds都可以安全清理binlog文件,那么到底该选择哪一种呢?1、选择参数expire_logs_senconds。对于大公司、大企业来说,交付的数据库数量较

Mybatis实现Mysql批量插入数据,判断数据是否存在,亲测有效

    首先吐槽一波,各大平台的腊鸡文章、误人子弟到处搬运都不知道谁是原创,还TMD解决不了问题,浪费大把时间。废话不多说直接进入主题。  我们在日常开发中避免不了的,会使用各关系型数据库的批量插入操作,批量插入虽然好用,但是也有诸多的限制,例如:以下实例 本质上来说这段sq在正常都有值的情况下来讲,没有任何的问题,但是注意看绿色框内的写法,没有做任何的判断,但凡红框内entity.字段,少了一个或者没有值就会报错 为什么会没有值,接着往下看 重点来了,在ServiceImpl里,这是做了一个String字符串转list《实体类》对象的操作,不是说这种写法有问题,这种写法只适用于String字