【发布时间】:2023-04-09 12:52:01
【问题描述】:
只是尝试使用 php 的“echo”粘贴一些值,但运气不好。
我相信我使用的代码在其第一个变量设置“$theid”中存在问题,它从表中获取 id 字段。代码如下:
<?php
$conn=mysql_connect("localhost", "username", "password")
or die ("Cannot Connect to MYSQL");
mysql_select_db("database1", $conn)
or die ("Cannot Connect to the Database");
echo "Connected successfully";
$theid = isset($_GET['id'])?$_GET['id']:""; //Possible problematic code
$data = mysql_fetch_array(mysql_query("SELECT * FROM table1 WHERE id='$theid'"));
?>
然后将使用数据:
<?php echo $data['url'] ?>
问题是,“$data”下什么都没有显示
在解决这个问题并环顾四周后,我仍然没有找到答案。非常感谢任何反馈,我相信这只是我使用语法的错误!。谢谢。
【问题讨论】:
-
在
mysql_fetch_array()内嵌套mysql_query()时,mysql_query()失败时无法调试。把它放在前面加上一个`mysql_query() or die(mysql_error()看看为什么。请注意,您应该放弃使用mysql_的任何尝试并更新为mysqli_或PDO。 -
另外,
$_GET用于获取 HTTP GET 发送的参数(通常通过 URL)。你如何测试这个页面?只有当您访问此页面时,您才会得到任何东西,例如(示例)http://localhost/test.php?id=123 -
感谢肖恩的评论,我会考虑这样做。我正在使用在线测试服务器和基于 apache 的本地服务器 @mathielo :)
-
您应该阅读:How can I prevent SQL-injection in PHP?。您现在所做的将导致您的生产代码出现重大问题。我的意思是这样,我可以在 5 分钟内拥有你的整个数据库。
-
@Darren,为此欢呼,由于我在收集数据时遇到的问题,我已经将这段代码恢复到了基础,我会在它工作时添加安全和保护 :)
标签: php sql arrays database isset