PHP脚本未运行,也未发布到mysql

PHP脚本未运行,也未发布到mysql,php,mysql,Php,Mysql,我有一个带有mysql后端的聊天应用程序。我正在尝试添加一行代码,在房间更改功能完成后将发布“…已加入房间” 这是我的密码: $PHP_PW = $_POST['password']; $PHP_USER = $_POST['email']; $PHP_ALIAS = $_POST['alias']; $PHP_GENDER = $_POST['gender']; $PHP_LON = $_POST['lon']; $PHP_LAT = $_POST['lat']; $PHP_STATUS =

我有一个带有mysql后端的聊天应用程序。我正在尝试添加一行代码,在房间更改功能完成后将发布“…已加入房间”

这是我的密码:

$PHP_PW = $_POST['password'];
$PHP_USER = $_POST['email'];
$PHP_ALIAS = $_POST['alias'];
$PHP_GENDER = $_POST['gender'];
$PHP_LON = $_POST['lon'];
$PHP_LAT = $_POST['lat'];
$PHP_STATUS = $_POST['status'];
$PHP_ROOM = $_POST['room'];
$PHP_ICON = $_POST['iconid'];
//$PHP_IP = $_SERVER['REMOTE_ADDR'];
$PHP_AGE = substr($_POST['age'],0,2);
$PHP_LOC = $_POST['location'];
$PHP_DOB = $_POST['dob'];
$PHP_IP  = $_POST['device_id'];

    if ($_POST['action']=="update")
{
if(!isset($PHP_USER))
{
    echo "ERROR";
} else
{

    if(isset($PHP_ROOM)) 
        $update = mysql_query("UPDATE USER SET room='$PHP_ROOM',lastupdate=NOW() WHERE email='$PHP_USER'")or die("ERROR80");
        $postmsg = mysql_query("INSERT INTO DATA (msgid,userid,date,message,room) VALUES (NULL,1,CURRENT_TIMESTAMP,'"...has joined the room"','$PHP_ROOM')") or die("ERROR1");


    echo "OK 1";
}
mysql_close($db);
}

代码运行良好,没有
$postsg=mysql_查询(“插入数据(msgid、userid、日期、消息、房间)值(NULL、1、当前_时间戳“…已加入“,”$PHP_房间”)或死(“error 1”)


但是,如果我使用$postsg行运行它,我不会从服务器获得错误和任何回复。

如果省略大括号,则只有下一行被视为
if
语句主体的一部分。您的代码如下所示:

if (isset($PHP_ROOM)) {
    $update = mysql_query("UPDATE USER SET room='$PHP_ROOM',lastupdate=NOW() WHERE email='$PHP_USER'")or die("ERROR80");
}

$postmsg = mysql_query("INSERT INTO DATA (msgid,userid,date,message,room) VALUES (NULL,1,CURRENT_TIMESTAMP,'"...has joined the room"','$PHP_ROOM')") or die("ERROR1");
您希望它这样做:

if (isset($PHP_ROOM)) {
    $update = mysql_query("UPDATE USER SET room='$PHP_ROOM',lastupdate=NOW() WHERE email='$PHP_USER'")or die("ERROR80");
    $postmsg = mysql_query("INSERT INTO DATA (msgid,userid,date,message,room) VALUES (NULL,1,CURRENT_TIMESTAMP,'"...has joined the room"','$PHP_ROOM')") or die("ERROR1");
}

此外,通过将未初始化的文本直接插入到查询中,您的应用程序容易受到SQL注入的攻击。看看这个问题:

我认为问题出在$postsg
“…已经加入房间”
。这不是连接字符串的正确方法
它应该是
,“.”。已加入房间“.”,

您连接到数据库了吗?是$update和$postsg应该在if块中还是仅$update,代码语法看起来不正确。因为如果这两个都是,那么你就少了一些关键的花括号。谢谢你的回复。我在用花括号发布之前尝试了代码,但从服务器上什么也没有得到。当我在测试表上按submit时,它会加载一个空白页。没有错误或ok的回声。我不确定脚本在哪里消亡。就是这样。我猜我连接字符串的方式不正确。现在可以用了,谢谢。有人能给我解释一下吗?