Php SQL插入不工作
common.phpPhp SQL插入不工作,php,mysql,Php,Mysql,common.php function connection() { $servername = "db********.db.1and1.com"; $username = "dbo********"; $password = "********"; $dbname = "db********"; $connection = new mysqli($servername, $username, $password, $dbname); mysql
function connection() {
$servername = "db********.db.1and1.com";
$username = "dbo********";
$password = "********";
$dbname = "db********";
$connection = new mysqli($servername, $username, $password, $dbname);
mysqli_set_charset($connection, "utf8");
if ($connection->connect_error) {
die($connection->connect_error);
}
}
include('../model/common.php');
connection();
$name = $_POST["catname"];
$sql = "INSERT INTO `category` (name) VALUES ('".$name."')" ;
if (mysqli_query($connection, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($connection);
}
mysqli_close($connection);
category.php
function connection() {
$servername = "db********.db.1and1.com";
$username = "dbo********";
$password = "********";
$dbname = "db********";
$connection = new mysqli($servername, $username, $password, $dbname);
mysqli_set_charset($connection, "utf8");
if ($connection->connect_error) {
die($connection->connect_error);
}
}
include('../model/common.php');
connection();
$name = $_POST["catname"];
$sql = "INSERT INTO `category` (name) VALUES ('".$name."')" ;
if (mysqli_query($connection, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($connection);
}
mysqli_close($connection);
include('../model/common.php');
连接();
$name=$\u POST[“catname”];
$sql=“插入到`category`(name)值(“$name.”)中”;
if(mysqli_查询($connection,$sql)){
echo“新记录创建成功”;
}否则{
echo“Error:”.$sql.
“.mysqli_Error($connection);
}
mysqli_close($connection);
我通过jQuery ajax提交了表单,它返回以下错误:
错误:插入到“类别”(名称)值(“某些测试值”)中
但是,如果我将connection()
函数的整个代码放在我的查询之上,而不包括common.php
,它就可以正常工作了!我猜可能有一些全球性的问题。我也尝试过全局$connection
或使用singleton类,但没有成功。函数connection()
创建上下文或作用域。变量仅在函数期间存在,因此下面的$connection
将不可用。有关变量范围的更多信息,请参阅。一种解决方案是在函数顶部添加global$connection
,以允许在connection()
函数外部设置$connection
。您可以完全省略该函数,只需包含用于设置该信息的文件
function connection() {
global $connection; //Add this line
$servername = "db********.db.1and1.com";
$username = "dbo********";
$password = "********";
$dbname = "db********";
$connection = new mysqli($servername, $username, $password, $dbname);
mysqli_set_charset($connection, "utf8");
if ($connection->connect_error) {
die($connection->connect_error);
}
}
connection()
函数创建上下文或作用域。变量仅在函数期间存在,因此下面的$connection
将不可用。有关变量范围的更多信息,请参阅。一种解决方案是在函数顶部添加global$connection
,以允许在connection()
函数外部设置$connection
。您可以完全省略该函数,只需包含用于设置该信息的文件
function connection() {
global $connection; //Add this line
$servername = "db********.db.1and1.com";
$username = "dbo********";
$password = "********";
$dbname = "db********";
$connection = new mysqli($servername, $username, $password, $dbname);
mysqli_set_charset($connection, "utf8");
if ($connection->connect_error) {
die($connection->connect_error);
}
}
$connection
if ($connection->connect_error) {
die($connection->connect_error);
}
return $connection
$connection = connection();
$connection
if ($connection->connect_error) {
die($connection->connect_error);
}
return $connection
$connection = connection();
首先检查您的
common.php
文件是否包含@prakashtank是我选中的,它包括警告:当使用mysqli
时,您应该使用并将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。永远不要将$\u POST
、$\u GET
或任何用户数据直接放入查询中,如果有人试图利用您的错误,这可能是非常有害的。值得注意的是,如果您只想使用核心PHP和mysqli
,这可能是PHP最薄弱的数据库接口,这将是一条艰难的道路。提供了很多关于如何更好地解决这个问题的建议,如果您致力于学习PHP,也值得探索。特别是对初学者友好,有很好的文档记录,并且有极好的社区支持。你不必为这样的事情纠缠不清。见鬼,甚至PDO也是处理数据库查询的更好的API,它是在第一次检查你的common.php
文件是否包含时构建的@prakashtank是我选中的,它包括警告:当使用mysqli
时,您应该使用并将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。永远不要将$\u POST
、$\u GET
或任何用户数据直接放入查询中,如果有人试图利用您的错误,这可能是非常有害的。值得注意的是,如果您只想使用核心PHP和mysqli
,这可能是PHP最薄弱的数据库接口,这将是一条艰难的道路。提供了很多关于如何更好地解决这个问题的建议,如果您致力于学习PHP,也值得探索。特别是对初学者友好,有很好的文档记录,并且有极好的社区支持。你不必和Eloquent纠缠不清。见鬼,即使PDO是处理数据库查询的更好的API,而且它是正确构建的,如果connection()
只返回$connection
@Phil Apple and oranges,inIt会更好。他可以简单地完全省略函数,只包含common.php
。如果connection()
只返回$connection
@Phil Apples and oranges会更好。他可以简单地完全省略函数,只包含common.php
`问题解决了,我忘了将函数赋给变量。thanksIt很可能与返回
行上的反勾号有关,它们不应该在那里。@tadman啊,我错过了这些!在列表中格式化代码并不总是显而易见的。我想OP是在尝试他们的best@Phil我只是猜测这就是问题所在,但现在看来是正确的。好主意`问题解决了,我忘了将函数赋给变量。thanksIt很可能与返回
行上的反勾号有关,它们不应该在那里。@tadman啊,我错过了这些!在列表中格式化代码并不总是显而易见的。我想OP是在尝试他们的best@Phil我只是猜测这就是问题所在,但现在看来是正确的。好主意!