【发布时间】:2014-01-13 10:26:02
【问题描述】:
我想用 MySQLi 语句或 PDO 执行以下操作,但我在服务器上遇到了很多错误。
请检查以下示例来学习我自己编写的代码是否可以确保安全以及是否可以使用它。希望下面的代码能帮助 MySQLi 新用户至少学习如何开始使用 MySQLi:
<?php
$host = "localhost";
$username = "db_user";
$password = "db_pass";
$dbname = "db_name";
@ $db = mysqli_connect($host, $username, $password, $dbname);
if(mysqli_connect_errno())
{
die("Connection could not be established");
}
$username = mysqli_real_escape_string($db, $_GET['user']);
$query = ("SELECT * FROM members WHERE profile='$username' ORDER BY id DESC LIMIT 1");
$result = mysqli_query($db, $query);
while($row = mysqli_fetch_array($result))
{
?>
PROFILE VIEW
<br>Name: <?php echo $row['nombre']?> ID: <?php echo $row['Age']?> <br />
<?php
}
?>
一切正常。如果有人能让它更安全,我将不胜感激。
【问题讨论】:
-
最安全的假设是用户数据总是恶意的。第二个最安全的假设是始终使用带有参数化输入的准备好的语句。
-
请不要大写。您将变量重新用于两种不同的事物,我认为这并不安全。我还会更多地清理用户输入。 $查询 = ("");是有效的,但这不是您定义字符串的方式。您可以删除它周围的 ( 和 )。
-
这个问题似乎是题外话,因为它要求a codereview
标签: php pdo mysqli statements procedural