如何在同一PHP代码中执行两个查询?

如何在同一PHP代码中执行两个查询?,php,mysql,Php,Mysql,我是PHP编程新手。我想在同一个PHP代码中执行两个查询。第一个查询给了我预期的结果。但第二个问题似乎不起作用。但它不会向我显示任何错误消息。有人能帮我吗 <?php mysql_connect('localhost','root',''); mysql_select_db('health'); $query1="SELECT * FROM messages,doctor WHER

我是PHP编程新手。我想在同一个PHP代码中执行两个查询。第一个查询给了我预期的结果。但第二个问题似乎不起作用。但它不会向我显示任何错误消息。有人能帮我吗

 <?php
                  mysql_connect('localhost','root','');
                  mysql_select_db('health');
                  $query1="SELECT * FROM messages,doctor WHERE doctor.regNo=messages.regNo AND messages.ID='".$id."';"; 
                  $result1=mysql_query($query1) or die(mysql_error());
                  $row=mysql_fetch_array($result1);
                  echo '<table cellspacing="10">';
                  echo '<tr><td><b>From: </b></td><td>Dr. '.$row['firstName'].' '.$row['lastName'].'</td></tr>';
                  echo '<tr><td><b>Category: </b></td><td>'.$row['category'].'</td></tr>';
                  echo '</table>';
                  echo '<p style="padding-left:13px;">'.$row['reply'].'</p>';
                  echo '</br><b style="padding-left:13px;">Your question</b></br>';
                  echo '<p style="padding-left:13px;">'.$row['question'].'</p>';

                  $query2="UPDATE health.messages SET read='Y' WHERE messages.ID='".$id."';"; 
                  $result2=mysql_query($query2);
                  mysql_close();
             ?>

您正在使用保留的MySQL字(例如
READ
)作为列名

要解决此问题,请更改行

$query2="UPDATE health.messages SET read='Y' WHERE messages.ID='".$id."';"; 

我还建议您注意其他人关于使用不推荐的MySQL函数和SQL注入问题的警告


您还应该尝试在命名列时更加独特,而不会与其他列发生冲突。尝试使用一致的前缀(例如
messageRead
isRead

您正在使用保留的MySQL字(例如
READ
)作为列名

要解决此问题,请更改行

$query2="UPDATE health.messages SET read='Y' WHERE messages.ID='".$id."';"; 

我还建议您注意其他人关于使用不推荐的MySQL函数和SQL注入问题的警告


您还应该尝试在命名列时更加独特,而不会与其他列发生冲突。尝试使用一致的前缀(例如
messageRead
isRead

您正在使用保留的MySQL字(例如
READ
)作为列名

要解决此问题,请更改行

$query2="UPDATE health.messages SET read='Y' WHERE messages.ID='".$id."';"; 

我还建议您注意其他人关于使用不推荐的MySQL函数和SQL注入问题的警告


您还应该尝试在命名列时更加独特,而不会与其他列发生冲突。尝试使用一致的前缀(例如
messageRead
isRead

您正在使用保留的MySQL字(例如
READ
)作为列名

要解决此问题,请更改行

$query2="UPDATE health.messages SET read='Y' WHERE messages.ID='".$id."';"; 

我还建议您注意其他人关于使用不推荐的MySQL函数和SQL注入问题的警告

您还应该尝试在命名列时更加独特,而不会与其他列发生冲突。尝试使用一致的前缀(例如
messageRead
isRead

是的,它给了我一个错误。错误是“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解在第1行的messages.ID='7''附近使用的正确语法”

read
是MySQL保留字

在列名周围使用反勾号

例如:

SET `read`='Y'
或者用另一个词来形容它


但它不会向我显示任何错误消息

那是因为你没有检查错误。在打开后立即将错误报告添加到文件顶部

是的,它给了我一个错误。错误是“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解在第1行的messages.ID='7''附近使用的正确语法”

read
是MySQL保留字

在列名周围使用反勾号

例如:

SET `read`='Y'
或者用另一个词来形容它


但它不会向我显示任何错误消息

那是因为你没有检查错误。在打开后立即将错误报告添加到文件顶部

是的,它给了我一个错误。错误是“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解在第1行的messages.ID='7''附近使用的正确语法”

read
是MySQL保留字

在列名周围使用反勾号

例如:

SET `read`='Y'
或者用另一个词来形容它


但它不会向我显示任何错误消息

那是因为你没有检查错误。在打开后立即将错误报告添加到文件顶部

是的,它给了我一个错误。错误是“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解在第1行的messages.ID='7''附近使用的正确语法”

read
是MySQL保留字

在列名周围使用反勾号

例如:

SET `read`='Y'
或者用另一个词来形容它


但它不会向我显示任何错误消息


那是因为你没有检查错误。打开
后立即在文件顶部添加错误报告,如果您是新手,请不要浪费时间使用传统的mysql扩展。它将触发代码中的错误,并将在某一天被删除。无论如何,负责打印错误的代码部分是
或die(mysql\u error())
。在第二个查询中不使用它。$result2=mysql\u query($query2)或die(mysql\u error());试着改变一下,看看它是否会触发一个错误,“但它不会向我显示任何错误信息。”-那是因为你没有检查错误。在打开
后立即将错误报告添加到文件的顶部。您的代码存在两个严重问题。首先,您应该将准备好的查询与PDO或类似的查询一起使用。否则,您可能会受到SQL注入攻击和代码破坏,因为您的数据在查询中使用而没有转义。此外,您只需将文本数据直接回显到HTML中,而无需转义。您必须使用htmlspecialchars()`否则可能会创建无效的HTML并使自己面临XSS攻击。如果您是新手,请不要浪费时间使用传统的mysql扩展。它将触发代码中的错误,并将在某一天被删除。无论如何,负责打印错误的代码部分是
或die(mysql\u error())
。在第二个查询中不使用它。$result2=mysql\u query($query2)或die(mysql\u error());试着改变一下,看看它是否会触发一个错误,“但它不会向我显示任何错误信息。”-那是因为你没有检查错误。在打开
后立即将错误报告添加到文件顶部有几个严重问题