草庐IT

PDO_ODBC

全部标签

php - 散列密码并将其和盐保存到 mysql pdo utf8 编码

我有这个问题,如果不合适,请在评论中告诉我,我会放弃。事情是这样的:我用这段代码生成盐:$salt=mcrypt_create_iv(32);密码是这样的:$password=hash('sha256',$_POST['password'].$salt);并将$salt和$password保存到MYSQL数据库中,目前没有问题,如果我这样连接:$pdo=newPDO('mysql:host=hostname;dbname=defaultDbName','username','password');但如果我以其他方式连接:$pdo=newPDO('mysql:host=hostname;

PHP PDO 转义问号所以它不认为它是一个占位符

我有一个如下所示的查询:SELECTCONCAT('path/to/page/?id=',id)ASlinkFROMusersWHEREname=?我正在使用PDO准备此语句,但出现错误Invalidparameternumber:numberofboundvariablesdoesnotmatchnumberoftokens因为它认为CONCAT字符串中的问号是一个占位符。有什么办法可以转义问号,让PDO知道它不是占位符吗?请不要评论其他获取链接的方法。我正在更改进入旧模板引擎的旧代码,因此找到一种方法来转义问号比不在查询中放置问号要少得多。 最佳答案

php - 如何处理 PHP 和 PDO 中的用户文本输入?

我应该使用PDOquote()然后在检索时从用户输入中去除引号和斜线,还是有更好的方法?当将用户输入从PHP表单插入MySQL时,任何单引号(撇号)都会截断数据。我目前正在使用PDO准备语句和bindValue()语句。我不确定是否使用PDOquote()方法,该方法似乎将我的所有字符串都封装在引号中,然后用反斜杠(“\”)转义字符串中的引号。据我所知,如果我使用这种方法,那么我需要在检索数据时从字符串中去除引号。这是最好的方法吗?使用PDOquote()然后使用substring删除封装单引号是否安全?此外,我有点困惑为什么单引号会截断数据输入。我认为PDObindValue()应该

php - 关闭 PDO 语句

我最近决定从MySQLi跳到PDO,关于PDO的准备好的语句有一些困扰我。在MySQLi中,我会像这样编写一个典型的获取查询:$db=newmysqli("localhost","user","pass","mydb");$sql="SELECTfirstCol,secondColFROMtestTableWHEREthirdCol=?";$stmt=$db->prepare($sql);$stmt->bind_param("s",$thirdCol);$stmt->execute();while(($row=$stmt->fetch())){//dosomething}$stmt->

PHP - MySQL PDO 最大查询大小

我在PHP中使用MySQLPDO从数据库中检索非常长的字符串(大约1-5mb)。在我的本地机器上测试时,一切正常。但是,在我的实时服务器上,执行select语句时,返回的最大字符串大小为1048576字节,正好是1MB。因此,由于代码相同,这一定是在PHP或MySQL设置中的内容。我有以下内容:php.inipost_max_size=20M我的.cnfmax_allowed_packet=20M所以我假设我没有设置正确的变量,因为限制仍然是1MB。有谁知道要设置什么吗? 最佳答案 啊啊啊,我找错地方了。这不是PHP或MySQL问题

php - PDO 准备好的语句如何工作 “inside” ?

准备好的语句很有用,因为准备"template"来添加数据可以防止SQL注入(inject),我的问题是,这怎么可能?准备好的语句是如何工作的?在我编写查询、绑定(bind)参数并执行查询后,会发生什么?我不认为参数是在查询中“插入”的,在那种情况下,准备语句的效果会失败……也许它使用特殊的定界符来检测查询中数据的开始和结束。如果这是正确的,它们是什么? 最佳答案 确切的行为取决于。例如,PDO中的MySQL驱动程序可以根据PDO::ATTR_EMULATE_PREPARESattribute的值做两件完全不同的事情。:Enable

未插入 PHP PDO 查询 - 错误 HY093

在网上搜索了大量内容后,我多次看到此错误,它看起来确实是特定于场景的。到目前为止,我还没有找到一个符合我的场景的。我认为我的问题来自带有空间数据类型参数的准备好的语句。我执行代码的方式是:$sql=$conn->prepare("INSERTINTOstates(`name`,`poly`)VALUES(':name',GeomFromText('GEOMETRYCOLLECTION(:coords)'));");$res=$sql->execute(['name'=>$name,'coords'=>$coords]);if($res){echo"...SuccessfullyInse

php - 使用 php 通过 odbc 连接到 quickbooks 数据库?

[编辑]我们通过网络表单从用户那里收集信贷申请数据。我没有将我的Web表单直接绑定(bind)到QB。我不知道这个数据集合的QB表结构是什么-也不知道它如何向用户显示它,因为我从未真正直接使用过QB。但是,我办公室的其他人会这样做。我仍然会感谢有关开源/免费选项的任何信息。我将通过删除第一个所需选项来简化问题。我们只讨论将平面文件导入quickbooks。我没有可以玩的quickbooks副本,所以我不知道quickbooks有哪些原生选项,但我在网上看到一些关于QB期望.ini文件用于导入的讨论。(还不知道它期望的格式,但我会在稍后解决)如果您设法将一个平面文件从mySQL导入qui

c# - ODBC 与 MySQLClient

我目前正在使用C#使用ODBC连接到我的MySQL数据库。有人告诉我,使用MySql连接器会更好、更快,并且不依赖于Windows。有人可以对此有所了解吗?到目前为止,我一直无法在网上找到任何东西 最佳答案 我不确定您要问的是什么。但是ODBC是一个通用提供程序,而mysql提供程序是特定于mysql数据库的。因此,特定的提供程序可以针对mysql进行更多优化,并更好地执行。ODBC和mysql提供程序都可用于单声道(linux、unix)和.net(windows),但始终建议使用特定的提供程序(如果有的话)。

php - 尽管使用 PDO::PARAM_INT 参数,MySQL/PDO::quote() 还是在整数周围加上引号

无论我将什么值/数据类型对传递给$pdo->quote($value,$type);,它总是将其作为字符串引用:echo$pdo->quote('foo',PDO::PARAM_STR);/*'foo',asexpected*/echo$pdo->quote(42,PDO::PARAM_INT);/*'42',expected42unquoted*/我只是想知道这是否是预期的功能。我使用准备好的语句来执行实际的查询,但我正在尝试fetch创建最终的查询字符串(用于调试/缓存),并手动构建它们。正如标题所暗示的,这是使用MySQL驱动程序创建$pdo时。由于不可用,我没有尝试过其他的。