Php 试图使用id from link和prepared语句插入数据库
我目前有以下代码。我试图做的是从链接中获取Php 试图使用id from link和prepared语句插入数据库,php,html,sql,prepared-statement,Php,Html,Sql,Prepared Statement,我目前有以下代码。我试图做的是从链接中获取oppdrID=x,并将查询放入具有相同oppdrID的行中。我不能让它工作,因为有些东西不工作。我怎么了 <!doctype html> <html> <head> <link rel="stylesheet" type="text/css" href="stilsett.php" /> <meta charset="utf-8"> <title>Endre oppdrag //
oppdrID=x
,并将查询放入具有相同oppdrID
的行中。我不能让它工作,因为有些东西不工作。我怎么了
<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="stilsett.php" />
<meta charset="utf-8">
<title>Endre oppdrag // Prosjekt - PHP</title>
</head>
<body>
<?php
include "funksjoner.inc.php";
session_start();
if(!empty($_SESSION['brukernavn'])) {
echo "<div id='header'>";
echo navigasjon();
echo "</div>";
echo "<div id='innhold'>";
$startTid = mysqli_real_escape_string(kobleTil(), htmlspecialchars($_POST['startTid']));
$slutTid = mysqli_real_escape_string(kobleTil(), htmlspecialchars($_POST['slutTid']));
$merknad = mysqli_real_escape_string(kobleTil(), htmlspecialchars($_POST['merknad']));
$antTimer = mysqli_real_escape_string(kobleTil(), htmlspecialchars($_POST['antTimer']));
if ($startTid == '' || $slutTid == '' || $merknad == '' || $antTimer == '') {
$error = "Vennligst fyll inn alle dataene!";
}
$db = kobleTil();
if (isset($_GET['oppdrID']) && is_numeric($_GET['oppdrID']) && $_GET['oppdrID'] > 0) {
$id = $_GET['oppdrID'];
$sql = "INSERT INTO timeregistrering WHERE oppdrID = ? (startTid, sluttTid, merknad, timer) values ('$startTid', '$slutTid', '$merknad', '$antTimer');
";
if ($stmt->prepare($sql)) {
$stmt->bind_param("i", $id, $startTid, $slutTid, $merknad, $antTimer);
$stmt->execute();
if ($db->query($sql)) {
echo "<p><b>Tabellen ble opprettet!</b></p>";
echo "<b>Spørringen som ble kjørt:</b><pre>$sql</pre>";
} else {
echo "<p>Noe gikk galt :(</p>" . $error;
}
}
}
}
echo "</div>";
?>
</body>
</html>
Endre//Prosjekt-PHP
我认为你准备的陈述是错误的,试着这样做:
$sql=“插入timeRegistering(startTid、sluttTid、merknad、timer)值(?,,,?)”代码>
$stmt->bind_参数($startTid、$slattid、$merknad、$antTimer)代码>
我删除了where子句,因为您不能在插入中使用where
,除非它是不存在的我认为您准备的语句是错误的,请尝试以下操作:
$sql=“插入timeRegistering(startTid、sluttTid、merknad、timer)值(?,,,?)”代码>
$stmt->bind_参数($startTid、$slattid、$merknad、$antTimer)代码>
我删除了where子句,因为您不能在insert
上使用where
,除非它是where不存在的
如果您使用的是HTML5(XHTML5)的XML序列化,那么DOCTYPE应该像这样大写:
(有关更多信息,请参阅答案)-我只是觉得应该注意涵盖所有基础。哦。。感谢headup@idemponences如果您使用的是HTML5(XHTML5)的XML序列化,那么DOCTYPE应该大写如下:
(有关更多信息,请参阅SO答案)-只是认为应该注意它涵盖了所有基础。哦。。感谢headsup@幂等将值更改为?s,但仍然没有发生太多的情况。您是否有任何错误?或者有任何数据被插入到TimeRegistering表中吗?我想你也可以删除这个if语句:if($db->query($sql)){
。你在里面执行sql:$stmt->execute();
试着在execute()
之后添加这一行:printf(“错误:%s.\n”,$stmt->Error);
忘记了在值之后,现在我得到了错误(!)解析错误:语法错误,意外的'i'(T_字符串)在第44行的C:\wamp64\www\prosjekt\kjoerx.php中,将值更改为?s,但仍然没有发生太多事情。您是否收到任何错误?或者是否有任何数据插入到时间注册表表中?我认为您还可以删除此if语句:if($db->query($sql)){
。您正在执行内部SQL:$stmt->execute();
尝试在execute()
之后添加此行:printf(“错误:%s.\n”,$stmt->Error);
忘记了值后面的“错误”,现在我得到了错误(!)解析错误:语法错误,在C:\wamp64\www\prosjekt\kjoerx.php的第44行出现意外的“i”(T字符串)