<?php
include"include/db.php";
$sql=mysql_query("select * from order where user='".$_SESSION['user']."' and flag=0") or die(mysql_error());
$i=0;
$sum=0;
$sum2=0;
while($rows=mysql_fetch_assoc($sql))
{
$sum2+=$rows['tedad'];
$sum+=getproductPrice($rows['pid']);
echo "<tr style=\"border:#00CCFF thin dotted\"><td><img src='images/bullet_delete.png' ></td>
<td align=center>".$rows['tedad']."</td>
<td align=left>".getproductPrice($rows['pid'])."</td>
<td align=right>".getproductName($rows['pid'])."</td>
<td align=center>".++$i."</td></tr>";
?>
这是我的代码,如何更正错误 我的错误是:
您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在第1行的'order where user ='zahra20'和flag = 0'附近使用正确的语法
答案 0 :(得分:1)
$sql=mysql_query("select * from `order` where user='".$_SESSION['user']."' and flag=0") or die(mysql_error());
这应该有效,因为你有一个名为'order'的表,你必须在名称之前和之后使用'`', BECAUSE 这里有一个叫做order的SQL函数,自从你不能SELECT * FROM ORDER,因为ORDER是一个函数,那么你会收到一个错误。
您还应该考虑使用PDO或MySQLi进行查询,因为旧的mysql根本不安全。
答案 1 :(得分:0)
查看您的查询:
"select * from order where user='".$_SESSION['user']."' and flag=0"
这里有一些问题。
首先,order
是reserved word。为了将它用作标识符,您需要将其括在后面的标记中:
"select * from `order` where user='".$_SESSION['user']."' and flag=0"
其次,您的查询是全开到SQL Injection Attacks。该会话值could have anything in it。由于您有效地将该值作为代码执行,因此您无法控制您正在执行的代码的语法。我建议修复它。