php - $_GET 未定义索引(来自 mysql 表的值)

标签 php mysql phpmyadmin

在考虑 PHP/HMTL 编程方面,我绝对是个初学者,现在我已经被这些问题困扰了好几天。

首先,我创建了包含以下列(id、姓名、姓氏、电话号码、电子邮件)的 Mysql 表。然后我成功地创建了阅读表格的表格。现在我想阅读并稍后使用以下代码编辑特定行:

41 <?php
42 $con = mysql_connect("localhost","username","password");
43 mysql_select_db("database", $con);
44 $id=$_GET["id"];
45 $result = mysql_query("SELECT * FROM Table  where id='$id'");
46 $row = mysql_fetch_array($result);
47 ?>

但我得到的只是以下错误: 注意:C:\xampp\htdocs\contacts_edit.php 第44行未定义索引:id

任何帮助将不胜感激!

最佳答案

您还没有在您的 URL 中设置 GET 参数。这就是为什么 id 没有在你的全局中定义的原因。

为防止出现该问题,请先检查变量:

$id = isset($_GET['id']) ? (int)$_GET['id']: 0;

或者

if (!isset($_GET['id']) {
    $_GET['id'] = 0;
}

给你的一个简短提示......

你真的应该看看你已经构建了一个非常大的安全漏洞的 SQL 注入(inject)。

不要在 SQL 查询中直接使用 $_GET$_POST。您应该更喜欢使用 PDO 或 MySQLi 准备好的语句。如果您想使用您的解决方案,请将您的 id 转换为如下整数值:

$id = (int)$_GET['id'];

那么当它没有设置时你有一个默认值 0。

关于php - $_GET 未定义索引(来自 mysql 表的值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12969690/

相关文章:

php - 为什么 $stmt->execute 总是返回 true?

PHP - 数组大小返回 1?

php - Zend 调试器与 Zend Server 5.6.0 和 PhpStorm 5.0

PHP CURL DELETE 请求

java - 如果不存在记录,如何创建一个删除表的事件和另一个事件

mysql - 将 MySQL 脚本转换为 ORACLE

Mysql从相似但不相关的表中获取数据

php - MySql - 将 InnoDB 转换为数据库的 MyISAM 存储引擎

php - 使列与 id 相同

MySQL 数据库看起来与其他数据库分开?