获取SQL语法错误

时间:2013-09-12 23:15:54

标签: php mysql

我想在我的php代码中从我的应用程序中获取这两个值。但在此之前,我正在尝试检查URL。但我的问题是,如果给出值手册我正在输出正确但当我通过传递值检查它时,我得到一个语法错误。任何人都可以帮我解决这个问题。

<?php
$hostname_localhost ="localhost";
$database_localhost ="mobiledb";
$username_localhost ="root";
$password_localhost ="";
$localhost = mysql_connect($hostname_localhost,$username_localhost,$password_localhost)
or
trigger_error(mysql_error(),E_USER_ERROR);
 $response = array();
mysql_select_db($database_localhost, $localhost);

$day = $_POST['day'];
$Q = $_POST['Qno'];


    // get a product from products table
$result = mysql_query("SELECT $Q FROM `Questions` WHERE `day`='$day'") or die(mysql_error()); 
    //echo $result;

if (mysql_num_rows($result) > 0) {
    // looping through all results
    // products node
    $response["question"] = array();

    while ($row = mysql_fetch_array($result)) {
        // temp user array
        $product = array();


        $product["question".$i] = $row["$Q"];

     $i = $i + 1;

     // push single product into final response array
        array_push($response["question"], $product);


    }


    // success
    $response["success"] = 1;

    // echoing JSON response
    echo json_encode($response);
} else {
    // no products found
    $response["success"] = 0;
    $response["message"] = "No users found";

    // echo no users JSON
    echo json_encode($response);
} 



?>

2 个答案:

答案 0 :(得分:2)

  

我正在尝试检查网址

通过这个我假设你的意思是你想要去网址:

http://localhost/yoursite/yourpage?Qno=5&day=thing

在这种情况下,这些变量将作为$_GET['Qno']$_GET['day']进行访问。

您可以使用$_REQUEST['Qno']$_REQUEST['day']双向接收变量。当然,您的应用程序有很多安全漏洞,我甚至都不会触及。

答案 1 :(得分:1)

我会试着逃避你的价值观。可能会修复你的错误,并保护你一些你应该google和阅读的SQL注入。

$day = mysql_real_escape_string($_GET['day']);
$Q = mysql_real_escape_string($_GET['Qno']);

在此示例中,我们使用$ _GET,因为您尝试直接从URL获取值。

另外,我们转义字符串以确保我们不会破坏字符串语法并将错误的怪物注入数据库!

另请注意:Mysql_功能已停止,您应该停止使用它。阅读大红框:http://php.net/manual/en/function.mysql-query.php