草庐IT

PDO-ODBC

全部标签

php - 在没有 PDO 的情况下使用 PHP for SQL Server 防止 SQL 注入(inject)

这个问题在这里已经有了答案:HowtoescapestringsinSQLServerusingPHP?(14个答案)关闭9年前。我可以尽可能多地清理和验证我的输入,但这绝对不能涵盖所有内容,如果我足够努力、足够彻底地擦洗,我将完全删除我的输入。我知道有很多关于这个主题的帖子,但似乎他们总是回到PDO或Mysql(是的-即使有人发布有关SQLServer的帖子,他们收到的一半答案建议mysql_real_escape_string-疯狂的世界)。我不能使用任何一个。即使在我打字时,屏幕右侧会出现一些“类似问题”,但我一直点击各种链接,但没有任何内容能完全回答我的问题。我正在使用SQLS

php - 从单个 PDO 数组实例化多个 PHP 对象(无样板)

如果你想从数据库中获取单个对象,PDO非常有用:$obj=$handle->fetchAll(PDO::FETCH_CLASS,$obj_name);如果您希望在一行中返回多个类类型(例如:在执行JOIN时),PDO的用处不大:$handle->fetchAll(PDO::FETCH_ASSOC);...followedbysomedatamappingontheresultingarray.很好-除了我想出的每一种方法看起来都很糟糕。我的问题是:当该数组的内容可能反射(reflect)全部、没有、部分或超过上课?示例:给定一个PDO从数据库返回的数组$vars=('a'=>1,'b'

php - PDO 使用外键创建表

我在使用带有外键元素的MySQL(PDO)创建表时遇到困难,没有外键表创建正常,但没有我收到此消息:SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有误;我曾尝试寻找解决方案并调整代码,但似乎一直遇到这个问题。有解决办法还是我是个笨蛋?setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);//sqltocreatetheactivityregisteredtable$sql="CREATETABLEActivity_Register(Activity_idINT(6)UNSIGNEDAUTO_INCREM

PHP PDO 潜在的逻辑错误

我是PHP新手,想知道为什么这段代码没有向数据库插入任何内容(返回0)。我确定这一定是一个逻辑错误,因为我没有收到任何错误消息。classDbConnection{protected$db_conn;public$db_host="localhost";public$db_name="todo";public$db_user="root";public$db_pass="";functionconnect(){try{$this->db_conn=newPDO("mysql:host=$this->db_host;dbname=$this->db_name",$this->db_use

PHP PDO GO 附近语法不正确,MSSQL 到 sqlsrv

这个问题在这里已经有了答案:Incorrectsyntaxnear'GO'(9个回答)关闭5年前。我在使用PHP和PDO执行长MSSQL脚本时遇到问题。它包含一些由GO分隔的批处理语句。如果脚本在ManagementStudio中执行,它就会运行。我已确保行结尾不会导致问题。我还尝试在执行请求之前启用beginTransaction()。返回以下错误:SQLSTATE[IMSSP]:Thisfunctionisnotimplementedbythisdriver.我正在使用IIS8和PHP5.4.16以及pdo_sqlsrv驱动程序脚本的第一部分:USEfoo;IFobject_id(

php - PDO::quote() 用于 SQL Server 错误引用包含 ASCII NUL 的字符串

我正在尝试使用pdo_sqlsrv从PHP将ASCIINUL字符(\0又名U+0000)插入到SQLServer数据库中。这是处理PHP序列化字符串的要求,其中包含NUL字符以表示私有(private)/protected变量。但是,关于PDO::quote()的一些事情破坏了字符串。要重现的代码(将DBNAME、USERNAME和PASSWORD替换为适当的值):getMessage());}$str="XX\0XX";header("Content-Type:text/plain");print("Original:".str_replace("\0","{NUL}",$str).

PHP PDO Sqlsrv 总是将每个值作为字符串返回

如何从具有正确字段类型的数据库中获取值?我正在使用PDOSqlsrv从DB中获取数据,并且我总是以字符串形式接收数据,例如:customer_id:"1"我的customer_id字段类型应该是整数是customer_id:1但phone_number字段类型是varchar它返回正确的类型作为字符串,如:phone_number:"12345678"编辑:我使用的是PHP5.5。我已经试过了。$this->dbh->setAttribute(PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE,true);我得到了这个错误Fatalerror:Undefined

php - PDO 和清理日期/删除 HTML

我让用户使用此代码更新他们的姓名。$dbh=connect();$q=$dbh->prepare('UPDATEUsersSETusername=:nameWHEREUser_ID=:idLIMIT1');$q->bindParam(":id",$loggedInUser->user_id,PDO::PARAM_INT);$q->bindParam(":name",$_GET['name'],PDO::PARAM_STR);$q->execute();A)这足以清理信息吗?b)当我把HTML标签放在那里时,比如name它实际上以粗体显示在我的网站上!有没有可以让PDO去除所有HTML的

PHP PDO 配置文件包含 - 全局

我正在为当前项目从使用mysql查询行转移到PDO,但我遇到了问题。对于这个任务,我不允许使用任何类(如果你问我,这是愚蠢的限制)基本上我遇到了一个非对象错误,因为我的主php文件看不到设置变量$DBH。我通过用$DBHglobal设置每个函数来解决这个问题;所以它可以被使用,但是我被告知这是糟糕的编码习惯。是这样吗?如果是这样,我怎样才能让我的函数看到我的配置变量。Config.phptry{$DBH=newPDO("mysql:host=host;dbname=db","username","Password");$DBH->setAttribute(PDO::ATTR_ERRMO

PHP ODBC 存储过程无效参数号

我100%是SQL/PHP/ODBC/FBI/TLA等世界的新手,所以如果我问的问题非常基础,我深表歉意。我正在使用一个存储过程,该过程使用邮政编码的纬度/经度数据库将中心邮政编码和给定的英里半径作为2个输入参数,然后返回该给定英里半径内的邮政编码数组。当我在我的SQL查看器中运行它时它工作得很好,但是当我尝试使用php来做同样的事情时,我只得到无效参数错误。$connstr="Driver={SQLServer};Server=MyServer;Database=MyDatabase;";$conn=odbc_connect($connstr,"Name","PW");$query_