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

use*_*545 0 php mysql phpmyadmin

嗯,我是一个考虑PHP/HMTL编程的绝对初学者,我现在已经坚持这些问题了几天.

首先,我创建了包含以下列的mysql表(id,Name,Surname,Telephone_number,Email).然后我成功创建了阅读表格.现在我想阅读并稍后使用以下代码编辑特定行:

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 ?>
Run Code Online (Sandbox Code Playgroud)

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

任何帮助将不胜感激!

Ren*_*hle 6

您尚未在URL中设置GET参数.这就是为什么id未在全局中定义的原因.

要防止该问题,请在检查变量之前:

$id = isset($_GET['id']) ? (int)$_GET['id']: 0;
Run Code Online (Sandbox Code Playgroud)

要么

if (!isset($_GET['id']) {
    $_GET['id'] = 0;
}
Run Code Online (Sandbox Code Playgroud)

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

你应该看看SQL-Injections你已经构建了一个非常大的安全漏洞.

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

$id = (int)$_GET['id'];
Run Code Online (Sandbox Code Playgroud)

然后,如果未设置,则默认值为0.