Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 这种MySQL语法是不可靠的,有时有效,有时无效。。。(严肃地)_Php_Mysql - Fatal编程技术网

Php 这种MySQL语法是不可靠的,有时有效,有时无效。。。(严肃地)

Php 这种MySQL语法是不可靠的,有时有效,有时无效。。。(严肃地),php,mysql,Php,Mysql,看看这个: if (isset($_POST['username'])) { $username = $_POST['username']; } $connect = mysql_connect("localhost", "root", ""); mysql_select_db("TagDB"); $query = mysql_query("UPDATE friendtable SET state = '1' WHERE (userB = '$username' AND

看看这个:

if (isset($_POST['username'])) { 
    $username = $_POST['username'];
}

$connect = mysql_connect("localhost", "root", "");
mysql_select_db("TagDB");

$query = mysql_query("UPDATE friendtable SET state = '1' 
    WHERE (userB = '$username' AND state = '0')");
这应该只是更新一个表,以显示userB列由发布的用户名组成的每个实例的状态为1。然而,这只是有时起作用。在不改变任何代码的情况下,这个方法有时会按照它应该做的去做,而其他时候什么也不做。奇怪

if (isset($_POST['state'])) {
    $state = $_POST['state'];
}

if (isset($_POST['username'])) {
    $username = $_POST['username'];
}

if (isset($_POST['frienduser'])) {
    $frienduser = $_POST['frienduser'];
}

$connect = mysql_connect("localhost", "root", "");
mysql_select_db("TagDB");

$query = mysql_query("UPDATE friendtable SET state = '$state' WHERE (userA = '$frienduser' AND userB = '$username')");

这也是同样的道理。有时它是完美的,有时,没有改变。我不知道会有什么不同。我唯一的线索是,有时我会通过phpmyadmin手动更改MySQL中的值来测试一些东西。它会因为我手动输入一些值而变得混乱吗?我不这么认为,但这是我唯一的线索。看看代码,如果你有时间的话,看看你是否能发现任何会导致这个奇怪问题的东西。谢谢你。

我是个十足的白痴。我将此作为一个答案发布,以帮助任何可能遇到此问题的人。基本上,我会将状态更改为0,以检查各种输入是否工作。然后我会刷新页面,看看在我输入后状态是否发生了变化。然而,当刷新页面时,它刷新了我以前的mysql请求。。。。将状态设置为0。所以,通过提神,我实际上是在破坏我刚才所做的。很抱歉打扰大家,但希望这篇文章将来能为其他人服务。谢谢

我是个十足的白痴。我将此作为一个答案发布,以帮助任何可能遇到此问题的人。基本上,我会将状态更改为0,以检查各种输入是否工作。然后我会刷新页面,看看在我输入后状态是否发生了变化。然而,当刷新页面时,它刷新了我以前的mysql请求。。。。将状态设置为0。所以,通过提神,我实际上是在破坏我刚才所做的。很抱歉打扰大家,但希望这篇文章将来能为其他人服务。谢谢

Offtopic:您在未转义的情况下使用$\u POST变量时存在一些严重的SQL注入漏洞。如果您使用准备好的语句,则不应存在此问题。您确定输入了正确的用户名,而不是其周围的空格/制表符/换行符吗?自动提交设置为什么?您如何知道查询没有更新所有行?mysql\u\u rows()对您的更新有何评论?使用相同WHERE子句的SELECT在更新前后显示了什么?@Dogbert yea我知道,我只是在整理这些东西之前构建了一个基本框架。这个问题的解决方案如下,我现在结束这个问题。谢谢大家!!Offtopic:您在未转义的情况下使用$\u POST变量时存在一些严重的SQL注入漏洞。如果您使用准备好的语句,则不应存在此问题。您确定输入了正确的用户名,而不是其周围的空格/制表符/换行符吗?自动提交设置为什么?您如何知道查询没有更新所有行?mysql\u\u rows()对您的更新有何评论?使用相同WHERE子句的SELECT在更新前后显示了什么?@Dogbert yea我知道,我只是在整理这些东西之前构建了一个基本框架。这个问题的解决方案如下,我现在结束这个问题。谢谢大家!!