2015-09-06 207 views
-2

screenshot of the codePHP更新查询成功,但数据库没有更新

我试图更新我的数据库和SQL查询的记录返回成功,但我的数据库没有改变。

+5

请将您的代码添加为** text **,而不是图片。 –

+0

'$ full_name = $ _POST ['full_name']; .......'等等等堡垒 – aldrin27

+0

打印查询并手动执行并确认它是否正确 –

回答

0

好像你正在使用PDO(希望)

当你使用这个数据对象,当查询被执行将返回TRUE,但它并不关心它是否改变了什么或没有,当没有关键的MYSQL错误时它将返回true。

你想要做的就是知道IF A ROW AS AFFECTED/CHANGED通过该查询,在这种情况下,而不是使用;

$PDOObject->query($thequery) == true 

你应该使用:

$result = $PDOObject->query($thequery); 

if($result->rowCount() > 0) ... 

如何知道行与PDO受查询更多信息

http://php.net/manual/en/pdostatement.rowcount.php

+0

这大部分是可靠的,不会存在 – Drew

0

SQL查询返回成功,但我的数据库没有变化

您确定至少存在一条符合您的过滤标准WHERE full_name = '$full_name' AND representative_id = '$login_session'的记录。如果没有记录更新意味着没有任何记录匹配WHERE条件,因此不会发生更新。

+0

或匹配发生但没有数据改变 – Drew

+0

@Drew,只有在SET中为列提供的值与当前现有值相同时才有可能的情况。 – Rahul

+0

或者db驱动程序没有实现的场景 – Drew

0
representative_id = '$login_session' 

是表中一个VARCHARINTrepresentative_id列?你正在向MySQL传递一个字符串。如果数据库中的列存储为INT,请尝试删除围绕$login_session的单引号。

当发布与数据库查询相关的问题时,它还有助于还包含表格模式。

+0

感谢您提供这些信息,我的representative_id是int。 – user2848911