我使用以下代码段:
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并不是最好的做法,但我出于某种原因这样做。
答案 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
。尝试使用mysqli
或PDO
。 mysql
现已弃用。
答案 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();
?>