草庐IT

SQL语言

全部标签

PHP 在没有数据库查询的情况下执行 SQL LIKE 匹配的方法?

我想将输入字符串匹配到我的PHP页面,就像SQL(MySQL)中的LIKE命令匹配其他搜索的一致性一样。由于(我已经看到但不理解)一些PHP语法包括SQL命令,我想知道这是否可能?这样做的原因是,我现在正在实现关键字与数据库中存储在序列化数组中的字段的搜索,我必须在PHP中反序列化并根据数组的结构进行搜索。我不能对表进行查询,只需要查询的匹配能力。否则我需要找到一个替代的匹配例程,这将不一致。我不能回去重新构建数据库,因为规范中没有预料到这一点。是的,我需要一个丑陋的hack,但我正在寻找最优雅的。如果不可能,我可以使用任何匹配用户输入文本的建议作为存储文本的关键字。编辑(澄清):我的

php - 使用 MDB2 防止 PHP 中的 SQL 注入(inject)

我想弄清楚如何防止sqlinjection,我写了这个基本函数:functionantiInjectie($inputfromform){$temp=str_replace("'","`",$inputfromform);$temp=str_replace("--","~~",$temp);returnhtmlentitites($temp);}但是有人告诉我还要考虑十六进制值,但我该怎么做呢?更新我坚持使用MDB2和pgsql 最佳答案 Bobby-Tables有一个很好的指南来防止SQL注入(inject)。简而言之:不要自己摆

php - pg_prepare() 准备好的语句(不是 PDO)是否可以防止 SQL 注入(inject)?

我正在处理的目标系统不支持PDO,尽管我在上使用PHP5.1.x寻求防止SQL注入(inject)的解决方案PostGres-DB8.2+。目前没有切换到PDO的机会。我目前的解决方案是pg_prepare-prepared语句://TryingtopreventSQL-Injection$query='SELECT*FROMuserWHERElogin=$1andpassword=md5($2)';$result=pg_prepare($dbconn,"",$query);$result=pg_execute($dbconn,"",array($_POST["user"],$_POS

php - 使用 "AND"表达式构建动态 SQL 而不会混淆嵌套条件?

我对php和一般编码还很陌生。我有一系列条件需要测试它们是否已设置。它们是$option1,$option2,$option3if(isset($option1)){if(isset($option2)){if(isset($option3)){$query="SELECT*FROMGroupWHEREFirstOption='$option1'ANDSecondOption='$option2'ANDThirdOption='$option3'";}else{$query="SELECT*FROMGroupWHEREFirstOption='$option1'ANDSecondOpt

PHP - 为所有支持的语言替换所有非字母数字字符

您好,我实际上正在尝试从这样的字符串中替换所有非字母数字字符:mb_ereg_replace('/[^a-z0-9\s]+/i','-',$string);第一个问题是它不会从字符串中替换像"."这样的字符。其次,我想为该方法添加对所有用户语言的多字节支持。我该怎么做?任何帮助appriciated,非常感谢。 最佳答案 尝试以下操作:preg_replace('/[^\p{L}0-9\s]+/u','-',$string);当u标志用于正则表达式时,\p{L}(和\p{Letter})匹配任何任何Unicode字母类别中的字符。

javascript - 为什么浏览器不解释更多的编程语言?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion虽然有大量的编程语言,但只有少数编程语言可以被浏览器解释。标签有一个类型属性,可以设置为javascript或ecmascript。php可以嵌入到带有的html中标签。为什么没有类似的机制来嵌入python/haskell/c/etc?它们缺少浏览器环境(例如javascript的“文档”对象和php的superglobals),但可以将类似的环境构建为这些语言的模块。许多编程语言都有cgi模块,因此有

php - 使用 PHP 通过 sqlsrv 驱动程序在 sql server 中插入当前日期时间

到目前为止,我已经尝试过了$sql="INSERTINTOtable-name(col-name)values(cureent_timestamp)";并将列数据类型设置为datetime,我得到一些值但没有日期或时间。 最佳答案 GETDATE()应该给你当前日期:$sql="INSERTINTOdb-name(col-name)VALUES(GETDATE())"; 关于php-使用PHP通过sqlsrv驱动程序在sqlserver中插入当前日期时间,我们在StackOverflow

php - Laravel Eloquent : is SQL injection prevention done automatically?

给定示例代码(Message是一个Eloquent模型。):publicfunctionsubmit(Request$request){$this->validate($request,['name'=>"required","email"=>"required"]);//databaseconnection$message=newMessage;$message->name=$request->input("name");$message->email=$request->input("email");$message->save();}Eloquent是否使用参数化查询(如PDO)

php - 解析 SQL 字符串

将sql字符串解析为单独的组件的好方法是什么?我试过使用正则表达式,但我无法让它正常工作。比如说:"SELECT*FROMtblWHEREuser_id>50"将创建一个包含所有组件的数组$arr[0]="SELECT";$arr[1]="*";$arr[2]="FROM";等...谢谢 最佳答案 我会选择可以集成到您的语言中的sql解析器:不要重新发明轮子。我没有特别推荐使用哪一种,但我相信您可以找到满足您需要的一种。参见相关:PHPMySQLSQLparser(INSERTandUPDATE)

php - 一个 SQL 查询,还是一个循环中的多个?

我需要从表中提取几行并以两种方式处理它们:聚合在一个键上逐行,按相同的键排序表格大致如下:table(key,string_data,numeric_data)所以我正在研究我正在编写的函数的两种方法。第一种是通过一次查询拉取聚合数据,然后在循环中再次查询每组逐行数据(以下是类似PHP的伪代码):$rows=query("SELECTkey,SUM(numeric_data)FROMtableGROUPBYkey");foreach($rowsas$row){$key=$row['key'];$row_by_row_data=handle_individual_rows($key);}