[英]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
。 尝试使用mysqli
或PDO
。 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.