PHP(如果记录中不存在。)

时间:2017-01-27 23:51:35

标签: php mysql

所以基本上我在这里得到了这个代码:

<?php
include_once 'dbconfig2.php';
$con = new DB_con();
$table = "users";
if(isset($_GET['profile_id']))
{
 $sql=mysql_query("SELECT * FROM users WHERE user_id=".$_GET['profile_id']);
 $result=mysql_fetch_array($sql);
}
?>

如果记录中不存在user_id,我无法理解如何做到这一点,他们无法查看他们的个人资料,但却导致他们陷入另一个麻烦或一段代码。

2 个答案:

答案 0 :(得分:0)

如果user_id不存在,则结果中不会有任何行。当您尝试使用mysql_fetch_array()读取行时,它会返回FALSE。因此,您只需测试$result

if (!$result) {
    die("Invalid profile ID");
} 

答案 1 :(得分:0)

尝试使用mysqli使用预准备语句,以避免sql注入。

举例来说:

$mysqli = new mysqli("localhost", "root", "root", "test");
if ($mysqli->connect_errno) {
  echo "connect_error". $mysqli->connect_error;
}
$id = $_GET['profile_id'];
$result = $mysqli->prepare('SELECT name FROM users WHERE user_id = ?');
$result->bind_param("i", $id);
$result->execute();
$result->bind_result($col1);
$result->fetch();
$is_valid_profile = (!$col1) ? 'Invalid profile' : 'Valid profile';
echo $is_valid_profile;
$result->close();

http://php.net/manual/en/mysqli.prepare.php