Php MySQL抓取不返回任何内容
我想从MySQL获取基于URL的内容。 例如,当URL为Php MySQL抓取不返回任何内容,php,mysql,fetch,Php,Mysql,Fetch,我想从MySQL获取基于URL的内容。 例如,当URL为/index.php?Name=FAQ时,显示整个FAQ。 我怎么解决这个问题 <?php require("configish.php"); mysql_connect("$hosty", "$uname", "$paswd") or die ("Cannot connect"); mysql_select_db("$dbnme") or die ("Cannot select database"); $url = $_GET[
/index.php?Name=FAQ
时,显示整个FAQ。
我怎么解决这个问题
<?php
require("configish.php");
mysql_connect("$hosty", "$uname", "$paswd") or die ("Cannot connect");
mysql_select_db("$dbnme") or die ("Cannot select database");
$url = $_GET['Name'];
$sql="SELECT * FROM Pages WHERE Name='".$url."'";
$result=mysql_query($sql) or die(mysql_error());
mysql_close();
while($res = mysql_fetch_array($result)) {
echo $res->Content;
}
?>
var\u dump($res)
它是一个数组。不是一个物体。不要使用mysql,因为它已经过时了。使用mysqli.*
var\u dump($res)
它是一个数组。不是一个物体。不要使用mysql,因为它已经过时了。使用mysqli.*
如果要使用对象表示法,则需要调用mysql\u fetch\u项目()
不要在查询后关闭MySQL连接,因为您仍然需要该连接来检索结果集
如果必须使用mysql.*
库,请确保使用mysql\u real\u escape\u string()
防止SQL注入。最好切换到或并使用预先准备好的语句
另外,或die(mysql_error())
是非常糟糕的做法。您应该通过测试mysql\u query()
中的false
返回值来正确处理错误。如果要使用对象表示法,则需要调用mysql\u fetch\u object()
不要在查询后关闭MySQL连接,因为您仍然需要该连接来检索结果集
如果必须使用mysql.*
库,请确保使用mysql\u real\u escape\u string()
防止SQL注入。最好切换到或并使用预先准备好的语句
另外,或die(mysql_error())
是非常糟糕的做法。您应该通过测试来自mysql\u query()
的false
返回值来正确处理错误
确保$url
不是空的李>
不能在数组中执行$res->content
(如果$res
是一个对象,而$res
是一个数组,则这是正确的)。改用$res['Content']
确保$url
不是空的李>
不能在数组中执行$res->content
(如果$res
是一个对象,而$res
是一个数组,则这是正确的)。改用$res['Content']
像这样使用。你引用了变量。为什么?
<?php
require("configish.php");
// DON'T QUOTE VARIABLES, IT'S UNNECESSARY
mysql_connect($hosty, $uname, $paswd) or die ("Cannot connect");
mysql_select_db($dbnme) or die ("Cannot select database");
// ESCAPE YOUR VALUES!!! CAN'T PUT ENOUGH !!! ON THIS!!!!
$url = mysql_real_escape_string($_GET['Name']);
$sql = "SELECT * FROM Pages WHERE Name='$url'";
$result = mysql_query($sql) or die(mysql_error());
// DON'T CLOSE YOUR CONNECTION BEFORE YOU FETCHED YOUR DATA
//mysql_close();
while ($res = mysql_fetch_assoc($result)) {
// ACCESS AS ARRAY IF YOU'RE FETCHING AS ARRAY
echo $res['Content'];
}
像这样使用。你引用了变量。为什么?你应该试试这个代码
<?php
require("configish.php");
// DON'T QUOTE VARIABLES, IT'S UNNECESSARY
mysql_connect($hosty, $uname, $paswd) or die ("Cannot connect");
mysql_select_db($dbnme) or die ("Cannot select database");
// ESCAPE YOUR VALUES!!! CAN'T PUT ENOUGH !!! ON THIS!!!!
$url = mysql_real_escape_string($_GET['Name']);
$sql = "SELECT * FROM Pages WHERE Name='$url'";
$result = mysql_query($sql) or die(mysql_error());
// DON'T CLOSE YOUR CONNECTION BEFORE YOU FETCHED YOUR DATA
//mysql_close();
while ($res = mysql_fetch_assoc($result)) {
// ACCESS AS ARRAY IF YOU'RE FETCHING AS ARRAY
echo $res['Content'];
}
<?php
require("configish.php");
mysql_connect("$hosty", "$uname", "$paswd") or die ("Cannot connect");
mysql_select_db("$dbnme") or die ("Cannot select database");
$url = mysql_real_escape_string($_GET['Name']);
$sql="SELECT * FROM Pages WHERE Name='".$url."'";
$result=mysql_query($sql) or die(mysql_error());
while($res = mysql_fetch_array($result)) {
echo $res['tableColumnName'];
}
mysql_close();
?>
您应该试试这段代码
<?php
require("configish.php");
mysql_connect("$hosty", "$uname", "$paswd") or die ("Cannot connect");
mysql_select_db("$dbnme") or die ("Cannot select database");
$url = mysql_real_escape_string($_GET['Name']);
$sql="SELECT * FROM Pages WHERE Name='".$url."'";
$result=mysql_query($sql) or die(mysql_error());
while($res = mysql_fetch_array($result)) {
echo $res['tableColumnName'];
}
mysql_close();
?>
1)有什么问题?2) 你对SQL注入开放!!!3) “弃用”表示“现在请不要用于新事物”;这与您现在使用的PHP版本无关。4) 不要做“$var”
,只要$var
就可以了。可能重复1)有什么问题?2) 你对SQL注入开放!!!3) “弃用”表示“现在请不要用于新事物”;这与您现在使用的PHP版本无关。4) 不要做“$var”
,只要$var
就可以了。这个可能的重复解决了我的问题,但我不能再标记6分钟。这解决了我的问题,但我不能再标记6分钟。