php中的sql查询不起作用

php中的sql查询不起作用,php,sql,Php,Sql,我试图在我的php文件中进行sql查询调用,以下是我的代码: <?php $program = $_GET["program"]; $school = $_GET["school"]; $term = $_GET["term"]; $extension = $_GET["extension"]; $con = mysql_connect("127.0.0.1","root",""); if (!$con) { die('Could not connect: ' . mysql_err

我试图在我的php文件中进行sql查询调用,以下是我的代码:

<?php
$program = $_GET["program"];
$school = $_GET["school"]; 
$term = $_GET["term"];
$extension = $_GET["extension"];

$con = mysql_connect("127.0.0.1","root","");
if (!$con)
{
 die('Could not connect: ' . mysql_error());
}

mysql_select_db("csv_db", $con);
$sql = "SELECT * FROM tbl_name WHERE Dep1= '" . $program . "' AND Dep2= '" . $school . "' AND Dep3= '" . $term . "'";  
$result = mysql_query($sql)  or die(mysql_error());
echo $sql;

echo "<table id='booklist'><tr>
                         <th>Edit</th>
                         <th class='coursename'>Course Name</th>
                         <th class='startdate'>Start Date</th>
                         <th class='booktitle'>Book Title</th>
                         <th class='author'>Book Author</th>
                         <th class='isbn'>Book ISBN</th>
                     </tr>";
        while($row = mysql_fetch_array($result))
        { 
            echo    "<tr>
                        <td><input type='checkbox'></input></td>
                        <td class='coursename'>" . $row['Course Name'] . "</td>
                        <td class='startdate'>" . $row['Start Date'] . "</td>
                        <td class='booktitle'>" . $row['Book Title']. "</td>
                        <td class='author'>" . $row['Book Author']. "</td>
                        <td class='isbn'><input class='ISBN_number' type='text' value='' size='13' maxlength='13'></input></td> 
                  </tr>";                   
        }               
echo "</table>";

mysql_close($con);
?> 

那么可能您没有匹配的记录

可能您的参数中有“将中断查询”。但是您肯定至少需要对参数进行一些转义。最好使用事先准备好的陈述。使用此代码,每个人都可以发送一些美好的东西,如:

程序=';删除数据库


Ups,一切都完了:-)

您的代码打开了一个与Jupiter一样大的SQL注入安全漏洞。您应该首先了解安全性:您是否尝试过从PHP(在变量插值之后)将查询打印到屏幕上,然后在MySQL Workbench中运行它以查看它是否在那里工作?您可以在工作台中发布查询和得到的结果吗?这行中看起来像是
或die(…
):
$result=mysql\u query($sql)或die(mysql\u error())
我刚才在将查询复制到mysql工作台时,确实得到了一个可以工作的查询,但要做到这一点,我需要去掉我的第三个参数。似乎因为我的第三个参数列名中有一个空格,所以无法正常工作(是的,我现在需要保留该空格)我在网上的某个地方看到,为了表示你需要的空格,但在名称周围加上勾号,这也不起作用…我做了!而且,表格本身不会构建,这意味着,如果它正在构建,我至少会看到一个边框。。。