草庐IT

php - 当没有值重复时重复键输入

当没有值甚至相同时,我收到一个非常奇怪的重复输入错误......INSERTINTOoffer_status(id,user_id,sql_id,disabled)VALUES('8854011812','8854','11812','0')返回:#1062-Duplicateentry'2147483647'forkey'PRIMARY'这对我来说根本没有意义!注意:这段代码并没有正常执行,我只是想调试一下。通常在我的PHP中我有:$offer=$campid;$id=$user_id.'0'.$offer;$sql="INSERTINTOoffer_status(id,user_i

php - 将 mysql_fetch_array 转换为 PDO::FETCH_NUM

这两段代码在PDO中的等价物是什么首先:$row=mysql_fetch_array($query);第二个:while($row=mysql_fetch_array($query)){$data[]=$row;}我在下面使用了这些代码,但我猜它们并不完全相同,因为其余代码不起作用。$row=$query->fetch(PDO::FETCH_NUM);和$data[]=$query->fetch(PDO::FETCH_ASSOC); 最佳答案 这是对应关系:mysql_fetch_array=fetch(PDO::FETCH_BOT

php - PDO 准备语句 : How to execute, 检查受影响的行,然后获取一个字段

我是PDO的新手-今天早上才被告知要朝那个方向前进。所以,听我说完。我正在尝试将我的登录验证函数从标准mysql_query()重写为PDO准备语句,但我遇到了一些问题。函数loginCheck()传递提供的电子邮件和密码,然后从匹配的电子邮件中获取盐,如果该查询的受影响行数为1,则将变量$salt应用于该查询的结果。对于函数的后半部分,我之前只是简单地使用://standardmysqlquerygoeshereif(mysql_num_rows($query)==1){$salt=mysql_result($query,0);}现在我的整个函数看起来像这样://newmysqlqu

php - 最后插入 ID 未返回

我有以下使用PDO将数据插入数据库的代码。它向数据库中插入数据但不返回最后插入的ID。这里userid是主键try{$dbh=newPDO('mysql:host=localhost;dbname=crud_demo',"username","password");$sqlQuery="INSERTINTOusers(userid,first_name,last_name,email,password)VALUES(:userid,:first_name,:last_name,:email,:password)";$statement=$dbh->prepare($sqlQuery);

PHP PDO 在不同的函数中连接和关闭连接

也许这是一个愚蠢的问题,但我是PDO的新手并且很困惑。是否可以在一个函数中实例化PDO对象(打开到服务器/数据库的连接),然后在另一个函数中关闭相同的连接?是否需要将函数传递给对象才能关闭它?我想这样做,这样我就可以创建一个无处不在的站点范围的函数,我可以调用它来启动连接、执行非通用sql,然后用另一个站点范围的函数关闭它。我怎样才能做到这一点?我是否需要将对象作为参数传递给这些函数? 最佳答案 是的,这是可能的。我建议使用一个启动与MySQL连接的构造函数和一个使它无效的析构函数。这样,您就不必在每次要打开和关闭连接时都手动调用该

php - 使用 PDO 清理 MySQL 中输入的正确方法

所以我有一个friend尝试在我的网站上运行SQL注入(inject),他设法使用下面的代码进入它。我怎样才能防止这种情况发生?我已经阅读了一些关于清理变量的内容,但我该怎么做呢?';INSERTINTOlogin(username,password)VALUES('Gjertsmells','password');SELECT'password'FROMLoginWHERE'x'='x$db=newPDO('mysql:host=XXXXXXXX;dbname=XXXXXXX','XXXXXXXXXX','XXXXXXXXX');//queryMySQLtoverifylogin$q

php - 使用 LIKE 搜索 PDO 数据库

我正在尝试使用以下代码创建一个小型搜索功能来查看数据库:$searchQ='Li';$query=$connDB->prepare('SELECT*FROMtopicWHEREtopic_nameLIKE'."':keywords'");$query->bindValue('keywords','%'.$searchQ.'%');$query->execute();if(!$query->rowCount()==0){while($results=$query->fetch()){echo$results['topic_name']."\n";}}else{echo'Nothingfo

php - 调用 MySQL 存储过程时数据包乱序错误

我正在尝试使用PDO调用存储过程,但在尝试获取结果时出现以下错误。警告:数据包乱序。预期1收到16.Packetsize=163我的存储过程使用了两个游标,我在从临时表中选择之前关闭了这两个游标。我怀疑这可能是问题所在,因为我可以直接在MySQL中调用我的SP并可以看到结果。在迁移到php_pdo_mysql.dll之前使用php_mysql扩展时,我也从来没有遇到过这个SP的问题。我还可以使用PDO在PHP中调用包含INPUT参数的其他更简单的存储过程,并且可以毫无错误地获取结果。这是返回错误的代码:$db=newPDO('mysql:host='.__DB_HOST__.';dbn

PHP PDO-MYSQL : How to use database connection across different classes

我对使用MYSQL的PDO有点陌生,这是我的两个文件:我有一个用于连接数据库的连接类:classconnection{private$host='localhost';private$dbname='devac';private$username='root';private$password='';public$con='';function__construct(){$this->connect();}functionconnect(){try{$this->con=newPDO("mysql:host=$this->host;dbname=$this->dbname",$this

php - 使用带有 PDO 的数组更新多个 MySQL 表列

我正在尝试将我所有的MySQL连接从旧的mysql_query切换到PDO。我正在尝试使用不同的数组更新MySQL表的多行和多列,但收到以下错误:[42000]:语法错误或访问冲突:1064您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,了解在“(accnt,car,radio,misc)values('admin','300.00','400.00','10.00')WHEREID'附近使用的正确语法1来自以下代码:$account=$_POST['account'];$car_lease=$_POST['car_lease'];$radio_lease=$_POST