无法获取mysql_query以返回数据库中存在的任何值

时间:2015-01-29 06:29:23

标签: php mysql

我使用以下代码段:

mysql_connect($host,$user,$password);
$sql = "SELECT FROM ec_opps WHERE id=" . $_GET["UPDATE"];
$item = mysql_query($sql);
mysql_close();
print_r($item);

根据UPDATE值尝试检索数据。该值准确地打印到页面,并且我知道请求存在于数据库中的ID。 print_r($ item)函数没有返回结果,甚至没有返回空数组,所以我对我出错的地方感到困惑。

我知道使用像这样的MySQL并不是最好的做法,但我出于某种原因这样做。

4 个答案:

答案 0 :(得分:0)

替换为此代码

 $sql = "SELECT * FROM ec_opps WHERE id=" . $_GET["UPDATE"];

答案 1 :(得分:0)

您的查询中缺少*

您需要使用: SELECT * FROM 代替 SELECT FROM

答案 2 :(得分:0)

查询中存在语法错误。缺少*。试试 -

$sql = "SELECT * FROM ec_opps WHERE id='" . $_GET["UPDATE"] . "'";

请避免使用mysql。尝试使用mysqliPDOmysql现已弃用。

答案 3 :(得分:0)

您在SELECT查询中缺少要选择的列,或者您可以通过添加*来选择所有列,这意味着选择所有列。

$sql = "SELECT * FROM ec_opps WHERE id='" . $_GET["UPDATE"]."'";

您的查询非常容易SQL injections

你应该避免使用MySQL。它已经deprecated了。您应该至少使用MySQLi_*

<?php
/* ESTABLISH CONNECTION */
$mysqli = new mysqli($host, $user, $password, $database);

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT column1, column2 FROM ec_opps WHERE id=?"; /* REPLACE NEEDED COLUMN OR ADD/REMOVE COLUMNS TO BE SELECTED */

if ($stmt = $mysqli->prepare($query)) {

    $stmt->bind_param("s", $_GET["UPDATE"]); /* BIND GET VALUE TO THE QUERY */
    $stmt->execute(); /* EXECUTE QUERY */
    $stmt->bind_result($column1,$column2); /* BIND RESULTS */

    while ($stmt->fetch()) { /* FETCH RESULTS */
        printf ("%s (%s)\n", $column1, $column2);
    }

    $stmt->close();
}

$mysqli->close();

?>
相关问题