草庐IT

php - 在 MySQL 中使用准备好的语句是否可以防止 SQL 注入(inject)攻击?

我只想验证在MySQL中使用准备好的语句是否可以防止SQL注入(inject)。下面的代码能防止所有的SQL注入(inject)攻击吗?$var=$_GET['q'];$trimmed=trim($var);if($trimmed!=NULL){$get_fighters=$DBH->prepare('SELECT*FROMfightersWHEREnameLIKE:searchTermORnicknameLIKE:searchTermORborn_in_cityLIKE:searchTermORborn_in_stateLIKE:searchTermORborn_in_country

php - 消息为 'PDOException' 的未捕获异常 'There is no active transaction'?

这是我用来插入记录的代码。每当出现插入错误时,即使我回滚了,订户表自动增加的编号仍会增加?问题是什么?我只想在发生错误时不添加自动递增数字。非常感谢您的帮助。$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);$conn->setAttribute(PDO::ATTR_AUTOCOMMIT,FALSE);$conn->beginTransaction();try{$email=$_POST['Email'];$FirstName=$_POST['FirstName'];$LastName=$_POST['LastN

php - 为什么我的 PHP 事务不起作用?

我正在开展一个学校项目,为我的作品集网站创建CMS。我无法使我的更新功能正常工作。我觉得这与我构建PDO交易的方式有关。在我的数据库中,我有一个项目表、类别表和关联的content_category表。我能够很好地将我的项目插入到这些表中。我想要做的是插入到我的项目表中,然后从content_category表中删除所有记录,最后将当前类别记录插入到该关联表中以完成事务。我确实收到了返回声明“项目已更新”。但是表格没有更新。有什么想法吗?代码如下:这是我的项目类中的一个函数。publicfunctionupdate(){try{$conn=getConnection();$conn->

mysql - 'PDOException' 消息 'SQLSTATE[HY000] [2002] zend 框架

谁能告诉我为什么会出现这个错误??首先,我的互联网连接很好,今天不太好,所以我收到了这个错误。请问我该如何解决这个问题??Fatalerror:Uncaughtexception'PDOException'withmessage'SQLSTATE[HY000][2002]Aconnectionattemptfailedbecausetheconnectedpartydidnotproperlyrespondafteraperiodoftime,orestablishedconnectionfailedbecauseconnectedhosthasfailedtorespond.'inD

php - 我可以取回 MySQL 表中列名的默认值吗?

这个问题在这里已经有了答案:HowtoSELECTDEFAULTvalueofafield(3个答案)关闭9年前。我可以获得表的列名,但有没有办法检索每列的默认数据值?这是我用来获取表列名称的方法:$q=$dbh->query("DESCRIBEtablename");$table_fields=$q->fetchAll(PDO::FETCH_COLUMN);print_r($table_fields);这会打印一个列名数组,但我也在尝试获取每个列名的默认数据值。

用于 MYSQL 中 NOT IN 查询的 PHP PDO

我有一个名为$_POST['excludeids']的post变量,其值如下:1,2,3,4,5,6,7,8,9我想通过NOTIN将其传递到SQL查询中,因此我使用以下查询:$STH=$DBH->prepare("SELECT*FROMbooksWHEREidNOTIN(:excludeids)");$STH->bindValue(':excludeids',$_POST['excludeids']);$STH->execute();绑定(bind)变量在这种情况下不起作用我不知道为什么。上面的查询有什么问题? 最佳答案 它不能以这

php - 无法将隐藏的表单值从数据库传递到 PHP if 语句

我的数据库表(相关)包含3列:related_id文章编号object_id这是一个表格,用于跟踪文章和对象之间的关系。我已经剥离了代码。现在它只包含删除按钮(x)。如果有人按下那个按钮,我希望用户被重定向到if(isset($_POST['deleteRelated']))获得“你确定吗”消息等。但隐藏的ID未正确传递。最后related_id在表格中是29。当我尝试回显隐藏的ID时,每个删除按钮(x)我只会得到29。下面代码的完整版本为我提供了一个包含文章标题、对象标题和删除按钮(x)的表格。由于提交按钮本身无法传递值,因此我需要一个隐藏值。但是当我通过按下删除按钮(x)传递它时,

php - 准备好的语句句柄可以存储在成员变量中吗?

我有一个处理数据并将其存储在MySQL数据库中的PHP类。出于安全原因,我在保存数据时通过PDO使用准备好的语句,但是因为类很大,所以这些准备好的语句是在不同的函数中创建的,这些函数在对象的生命周期中被调用了数千次(从一分钟到三十分钟)。我想知道是否有任何原因我无法在类构造函数中准备语句并将句柄保存在成员变量中以避免语句被准备多次。有什么原因这行不通吗?我不明白为什么不这样做,但我以前从未见过这样做,这让我想知道这样做是否出于某种原因是一种不好的做法。即像这样:ClassMyClass{privatestmt1;function__construct($dbh){$this->stmt

mysql - Laravel 5.1 - 连接到 MySQL 数据库 (MAMP)

网上有一些话题在讨论这个问题,但是我找不到对这个问题的任何清晰的解释或对这个问题的任何可靠答案。我想要实现的是将Laravel5.1连接到MAMP的MySQL数据库。在我的config>app.php中:'default'=>env('DB_CONNECTION','mysql'),'mysql'=>['driver'=>'mysql','host'=>'localhost:8889','database'=>'test','username'=>'root','password'=>'root','charset'=>'utf8','collation'=>'utf8_unicode

php - 如何知道 DELETE 查询是否真的删除了一行,使用 PDO

我正在使用PDO语句将DELETE查询传递给mysql。我想知道,查询是否真的删除了一行?我尝试使用$stmt->execute()的返回值functiondelete(){$stmt=$this->db->prepare("DELETEFROMusersWHEREid=:id");$stmt->bindValue(':id',$_POST[id]);var_dump($stmt->execute());}但是这始终给出true,即使没有行被删除。即使我没有发布任何值(value),甚至一次又一次地发布相同的值(value),这也是正确的。可能是因为查询成功并删除了0行,所以$stmt