繁体   English   中英

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

[英]Can't get mysql_query to return any values that exist in the database

我正在使用以下代码段:

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并不是最佳实践,但是我这样做是有原因的。

用此代码替换

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

您在查询中缺少*

您需要使用: SELECT * FROM而不是SELECT FROM

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

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

请避免使用mysql 尝试使用mysqliPDO mysql已弃用。

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

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

您的查询非常容易发生SQL注入

您应该避免使用MySQL。 已经过时了。 您至少应该使用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();

?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM