<?php
$con = mysqli_connect("mysql.klasserom.net","username","password","knet-elev16912");
$sql="INSERT INTO Registrering ( Fornavn, Etternavn, Brukernavn )
VALUES
( '$_POST[Fornavn]','$_POST[Etternavn]','$_POST[Brukernavn]' )";
mysqli_query($sql) or die ( mysqli_error ($con));
$qsl="INSERT INTO Bilregistrering ( Bilmerke, MerkeModell, Farge, ÅrsModell, Registrasjonsnummer )
VALUES
( '$_POST[Bilmerke]','$_POST[MerkeModell]','$_POST[Farge]','$_POST[ÅrsModell]','$_POST[Registrasjonsnummer]' )";
mysqli_query($qsl) or die ( mysqli_error ($con));
mysqli_close($con);
?>
我试图将信息从我的网站发送到我的数据库。它没有用,所以我来这里寻求帮助。
我对此非常陌生,非常感谢任何帮助! :^)
答案 0 :(得分:3)
我已经有20分钟等待橄榄球打开了,所以让我们来看看我们可以改进的东西,Fred-ii,随时纠正我可能任性的错误:-D,但我不能帮助看到评论中回答的问题!
foreach ($_POST $key=>$value){
$save[$key] = htmlspecialchars($value);
}
很多人会告诉你使用Mysqli_real_escape_string
这也是非常好的(除了一些边缘情况)。
然后使用$save
中的值到MySQLi过程字符串中,但正如其他人所说,你可以 将它们连接到字符串或包住them in curly brackets;使用前者:
$sql="INSERT INTO Registrering ( Fornavn, Etternavn, Brukernavn )
VALUES ('".$save['Fornavn']."','".$save['Etternavn']."','".$save['Brukernavn']."' )";
使用后者:
$sql="INSERT INTO Registrering ( Fornavn, Etternavn, Brukernavn )
VALUES ('{$save['Fornavn]'}','{$save['Etternavn']}','{$save['Brukernavn']}' )";
要使用花括号,该字符串必须用双引号包装 。
另请read this SO Q&A了解为何使用预备陈述。
将您的查询重写为:
mysqli_query($con, $sql) or die ( mysqli_error ($con));
<强> P.S 强>
阅读this Q&A will save you a HUGE amount时间和精力。使用PHP错误日志记录。做吧。
答案 1 :(得分:1)
问题是您在{s}查询中将string
数据作为'$_POST[Fornavn]'
(mysqli_query()
- 这是一个字符串)传递。您的$link
功能也不具有mysqli_connect()
mysqli_connect($link, $query)
参数。应该是$stmt = $conn->prepare("INSERT INTO users (name) VALUES (?)");
$stmt->bind_param("s", $name);
$name = "John";
$stmt->execute();
。
MySQLi示例:
override func viewDidLoad() {
super.viewDidLoad()
let fileItem = self.extensionContext!.inputItems.first as! NSExtensionItem
let textItemProvider = fileItem.attachments!.first as! NSItemProvider
let identifier = kUTTypePDF as String
if textItemProvider.hasItemConformingToTypeIdentifier(identifier) {
textItemProvider.loadItemForTypeIdentifier(identifier, options: nil, completionHandler: handleCompletion)
}
}
func handleCompletion(pdfFile: NSSecureCoding?, error: NSError!) {
print("PDF loaded - What to do now?")
}
修复代码的其他部分,它应该可以正常工作。
答案 2 :(得分:1)
你这样做的方式,你对sql注入是开放的。这是我的解决方案,更安全。假设你知道如何消毒输入。
$name=$_POST['name'];
$dbuname='databasename';
$dbpass='databasepassword';
try{
$conn=new PDO('mysql:host=www.yourHost.com;dbname=DatabaseName',$dbuname,$dbpass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e) {
echo'Error:'.$e->getMessage();
}
try{
$sql=$conn->prepare("INSERT INTO `table`(name) VALUES (:na)");//prepare the query
$sql->execute(array(":na"=>$name));//executing the query
}
catch(PDOException $e){
echo 'Error:'.$e->getMessage(); //use it for getting the error
}
你应该真正描述你得到的错误,以便我们能够提供更好的答案。