代码 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 保存在我的数据库中:
保存多个!
我的代码 2 保存在我的数据库中:
我的代码 1 有什么问题?
最佳答案
好吧,代码 1 对 SQL 注入(inject)开放,因为您没有转义 $q。至于为什么会得到两条记录,问题不在代码1,应该是调用userInput
的代码。
关于PHP MySQL数据库问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2723771/