- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 PHP 编程新手。我想在同一个 PHP 代码中执行 2 个查询。第一个查询给了我预期的结果。但是第二个查询似乎不起作用。但它没有向我显示任何错误消息。有人可以帮助我吗?
<?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();
?>
最佳答案
Yes, it gave me an error. The error is "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'read='Y' WHERE messages.ID='7'' at line 1"
read
是MySQL的保留字
在列名周围使用反引号。
例如:
SET `read`='Y'
或者换个词。
But it does not show me any error message.
那是因为您没有检查错误。打开后立即将错误报告添加到文件顶部 <?php
标签 error_reporting(E_ALL); ini_set('display_errors', 1);
包括 or die(mysql_error())
对于第二个查询,您没有像对第一个查询那样做。
此外,您的代码很容易通过您正在使用的当前(和已弃用的)MySQL API 进行 SQL 注入(inject)。
使用 mysqli_*
with prepared statements , 或 PDO与 prepared statements .
关于您的代码的其他安全相关问题,您的问题下已留下评论。
引用 Brad 的评论:
you are just echoing text data directly into HTML with no escaping. You must use
htmlspecialchars()
or you risk creating invalid HTML and opening yourself up to XSS attacks.
以下是一些您可以阅读的有关 SQL 注入(inject)主题的链接:
跨站脚本(XSS)
关于php - 如何在同一个 PHP 代码中执行两个查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24959626/
我是一名优秀的程序员,十分优秀!