PHP MySQL数据库问题

标签 php mysql

代码 1:

<?php
class dbConnect {
  var $dbHost = 'localhost',
  $dbUser = 'root',
  $dbPass = '',
  $dbName = 'input_oop',
  $dbTable = 'users';
  function __construct() {

$dbc = mysql_connect($this->dbHost,$this->dbUser,$this->dbPass) or die ("Cannot connect to MySQL : " . mysql_error()); mysql_select_db($this->dbName) or die ("Database not Found : " . mysql_error()); } } class User extends dbConnect { var $name; function userInput($q) { $sql = "INSERT INTO $this->dbTable set name = '".$q."'"; mysql_query($sql) or die (mysql_error()); } } ?>


这是调用类的代码。

<?php
include ('class.php');
$q=$_GET["q"];
$user = new User;
  $user->userInput($q);
?>


代码 2:

<?php
  $q = $_GET['q'];
$dbc=mysql_connect("localhost","root","") or die (mysql_error());
  mysql_select_db('input_oop') or die (mysql_error());
  $sql = "INSERT INTO users set name = '".$q."'";
  mysql_query($sql) or die (mysql_error());
?>

我的代码 1 保存在我的数据库中:
alt text
保存多个!

我的代码 2 保存在我的数据库中:
alt text

我的代码 1 有什么问题?

最佳答案

好吧,代码 1 对 SQL 注入(inject)开放,因为您没有转义 $q。至于为什么会得到两条记录,问题不在代码1,应该是调用userInput的代码。

关于PHP MySQL数据库问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2723771/

相关文章:

php - 在 Wordpress 网站之前添加一个简单的 HTML 登陆页面

php - 使用不同的字符集搜索数据库

mysql - 每组通用最大 N 查询太慢

php - 将数据插入 WordPress 插件中的新表

mysql - 优化对关系数据库的查询,其中实体是完整的 json 对象,并使用另一个具有实体值设计的表

php - 如何从mysql数据库回显最后插入的记录?

php - Laravel 多次上传仅将 20 插入数据库

php - Processing Conflict : php55w-mysql-5. 5.30-2.w6.x86_64冲突php55w-mysqlnd

java - 从 Java 插入 MySql 时出现语法错误

php - 没有看到查询结果回显