标签: pdo

PDO mysql:如何知道插入是否成功

我正在使用PDO插入记录(mysql和php)

$stmt->bindParam(':field1', $field1, PDO::PARAM_STR);
$stmt->bindParam(':field2', $field2, PDO::PARAM_STR);
$stmt->execute();
Run Code Online (Sandbox Code Playgroud)

有没有办法知道它是否成功插入,例如,如果没有插入记录,因为它是重复的?

编辑:当然我可以查看数据库,但我的意思是程序化反馈.

php mysql database pdo

87
推荐指数
5
解决办法
10万
查看次数

如何正确使用PDO对象进行参数化SELECT查询

我已经尝试按照PHP.net的说明进行SELECT查询,但我不确定这样做的最佳方法.

我想使用参数化SELECT查询,如果可能的话,返回ID表中name字段与参数匹配的表.这应该返回一个,ID因为它将是唯一的.

然后我想将它ID用于INSERT另一个表,所以我需要确定它是否成功.

我还读到您可以准备查询以供重用,但我不确定这有何帮助.

php mysql select pdo

85
推荐指数
4
解决办法
16万
查看次数

真正的转义字符串和PDO

迁移远离mysql库后我正在使用PDO.我用什么代替旧mysql功能?

我需要转义单引号,以便它们进入我的数据库,我认为可能有更好的方法来处理这个,而不添加(斜)所有字符串的斜杠.有人可以告诉我应该使用的是什么吗?

php mysql pdo

83
推荐指数
3
解决办法
11万
查看次数

PHP + PDO + MySQL:我如何从PHP中返回整数和数字列作为整数和数字?

我已经在Stack Overflow上重复了几次这个问题,但是没有一个能够充分探索这个问题(或者至少以一种对我有帮助的方式)

问题是数据库查询应该在PHP中为整数列返回整数数据类型.相反,查询将每列作为字符串类型返回.

我确保"PDO :: ATTR_STRINGIFY_FETCHES"为false,以确保结果不会被转换为字符串.

我见过的答案:

  • 它无法完成
    • 不,它正在Mac OS X上安装PHP/MySQL
  • 在代码中输入所有值
    • 不,我不会这样做
  • 不要担心,PHP是松散的类型
    • 我的数据输出为JSON并被许多其他服务使用,有些需要正确格式的数据

根据我的研究,我了解这是一个驱动程序实现问题.

许多消息来源声称MySQL本机驱动程序不支持返回数字类型.这似乎不正确,因为它适用于Mac OS X.除非他们的意思是" Linux上的MySQL本机驱动程序不支持该功能".

这意味着我在Mac OS X上安装的驱动程序/环境有一些特殊之处.我一直在尝试识别差异以便应用修复,但我受限于我对如何检查这些内容的了解.

差异:

  • OS X上的PHP是通过Home Brew编译和安装的
  • Ubuntu上的PHP是通过"apt-get install php5-dev"安装的
  • OS X上的PHP连接到也在OS X上运行的MySQL服务器
    • 服务器版本:5.1.71-log源分发
  • Ubuntu上的PHP连接到Rackspace云数据库
    • 服务器版本:5.1.66-0 + squeeze1(Debian)

Ubuntu环境

  • 版本:10.04.1
  • PHP 5.4.21-1 + debphp.org~lucid + 1(cli)(内置:2013年10月21日08:14:37)
  • php -i

    PDO_MYSQL

    用于MySQL的PDO驱动程序=>已启用客户端API版本=> 5.1.72

Mac OS X环境

  • 10.7.5
  • PHP 5.4.16(cli)(内置:2013年8月22日09:05:58)
  • php -i

    PDO_MYSQL

    用于MySQL的PDO驱动程序=>启用客户端API版本=> mysqlnd 5.0.10 - 20111026 - $ Id:e707c415db32080b3752b232487a435ee0372157 $

使用PDO标志

PDO::ATTR_CASE => PDO::CASE_NATURAL,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_ORACLE_NULLS …
Run Code Online (Sandbox Code Playgroud)

php mysql macos ubuntu pdo

76
推荐指数
2
解决办法
2万
查看次数

PDO :: PARAM的类型为十进制?

我有2个数据库字段

`decval` decimal(5,2)
`intval` int(3)
Run Code Online (Sandbox Code Playgroud)

我有2个pdo查询更新它们.更新int的那个工作正常

$update_intval->bindParam(':intval', $intval, PDO::PARAM_INT);
Run Code Online (Sandbox Code Playgroud)

但我无法更新小数字段.我尝试了以下3种方法,但没有任何效果

$update_decval->bindParam(':decval', $decval, PDO::PARAM_STR);
$update_decval->bindParam(':decval', $decval, PDO::PARAM_INT);
$update_decval->bindParam(':decval', $decval);
Run Code Online (Sandbox Code Playgroud)

看来问题出在数据库类型上decimal?是否存在PDO::PARAM类型的字段decimal?如果没有,我将使用什么作为解决方法?

php mysql database pdo

74
推荐指数
1
解决办法
6万
查看次数

MySQL IN语句的PDO绑定值

我有一个PDO的问题,我很想在被它困扰很长一段时间后得到答案.

举个例子:

我将一个ID数组绑定到PDO语句,以便在MySQL IN语句中使用.

该数组将是:$ values = array(1,2,3,4,5,6,7,8);

数据库安全变量是$ products = implode(','$ values);

因此,$ products将成为STRING,其值为:'1,2,3,4,5,6,7,8'

声明如下:

SELECT users.id
FROM users
JOIN products
ON products.user_id = users.id
WHERE products IN (:products)
Run Code Online (Sandbox Code Playgroud)

当然,$产品将被声明为:产品.

但是,当编译语句并绑定值时,它实际上看起来像这样:

SELECT users.id
FROM users
JOIN products
ON products.user_id = users.id
WHERE products IN ('1,2,3,4,5,6,7,8')
Run Code Online (Sandbox Code Playgroud)

问题是它将IN语句内部的所有内容作为单个字符串执行,因为我已将其准备为逗号分隔值以绑定到语句.

我真正需要的是:

SELECT users.id
FROM users
JOIN products
ON products.user_id = users.id
WHERE products IN (1,2,3,4,5,6,7,8)
Run Code Online (Sandbox Code Playgroud)

我实际上可以实现这一点的唯一方法是将值放在字符串本身而不绑定它们,但我知道必须有一种更简单的方法来执行此操作.

php mysql pdo sql-in

71
推荐指数
4
解决办法
5万
查看次数

是否可以设置默认的PDO获取模式?

在检索数据之前,我总是要输入:

$STH->setFetchMode(PDO::FETCH_OBJ);
Run Code Online (Sandbox Code Playgroud)

为了使我的代码更具可读性,如果我可以在某处设置默认模式,那将会很棒....

谢谢!

编辑.我本来希望我可以将PDO:FETCH_OBJ添加到我连接到数据库时运行的setAttribute代码,但这似乎不起作用......

php pdo

71
推荐指数
2
解决办法
2万
查看次数

PDO :: PARAM的日期?

是否PDO::PARAM_???存在可用于日期或时间戳的某些内容?

示例代码:

$sql = "UPDATE my_table SET current_date = :date WHERE id = 43";
$statement = $pdo->prepare ($sql);
$statement->bindParam (":date", strtotime (date ("Y-m-d H:i:s")), PDO::PARAM_STR);
$statement->execute ();
Run Code Online (Sandbox Code Playgroud)

php mysql pdo types date

69
推荐指数
3
解决办法
9万
查看次数

PDO :: fetchAll与PDO ::在循环中获取

只是一个简单的问题.

在循环中使用PDO :: fetchAll()和PDO :: fetch()之间是否有任何性能差异(对于大型结果集)?

我正在获取用户定义类的对象,如果这有任何区别.

我最初没有受过教育的假设是fetchAll可能更快,因为PDO可以在一个语句中执行多个操作,而mysql_query只能执行一个.但是我对PDO的内部工作知之甚少,而且文档没有说明这一点,以及fetchAll()是否只是一个转储到数组中的PHP端循环.

有帮助吗?

php mysql pdo fetch

69
推荐指数
4
解决办法
8万
查看次数

有关于如何使用PDO的好教程吗?

也许有人做了一个教程,显示了重要的事情:设置所有内容并将其与MySQL一起使用?

php pdo

68
推荐指数
4
解决办法
5万
查看次数

标签 统计

pdo ×10

php ×10

mysql ×8

database ×2

date ×1

fetch ×1

macos ×1

select ×1

sql-in ×1

types ×1

ubuntu ×1