我的坏......名字错了。
但它仍然没有更新,它说更新了0条记录。它应该是1。
这是我的输入字段:
<?php
if($_SESSION['admin'] > 0)
{
echo'<div id="registreer">';
echo'<div id="titel">update</div>';
echo'<form action="done.php" method="post">';
echo'<input type="text" name="regname" placeholder="username" /> ';
echo'<input type="password" name="regpass" placeholder="password" />';
echo'<input type="text" name="regdbhost" placeholder="host" /> ';
echo'<input type="text" name="regdbuser" placeholder="user" /> ';
echo'<input type="text" name="regdbpass" placeholder="dbpass" /> ';
echo'<input type="text" name="regdbname" placeholder="dbname" /> ';
echo'<input type="text" name="regdbtable" placeholder="table" /> ';
echo"<button type='submit' name='regsubmit' value='register'>";
echo'<p>UPDATE</p>';
echo'</button>';
echo'</form> ';
echo'</div>';
echo'<a href="hetwerkt.php">terug</a>';
}
else if($_SESSION['admin'] < 1)
{
header("Location: hetwerkt.php");
}
?>
当您点击更新时,它会将您发送到done.php
<?php
session_start();
?>
<?php
$servername = "----";
$username = "----";
$password = "----";
$dbname = "----";
$name = mysql_real_escape_string($_POST['regname']);
$pass = mysql_real_escape_string($_POST['regpass']);
$regdbhost = $_POST['regdbhost'];
$regdbuser = $_POST['regdbuser'];
$regdbpass = $_POST['regdbpass'];
$regdbname = $_POST['regdbname'];
$regdbtable = $_POST['regdbtable'];
$pass = crypt($pass,'$2a$09$anexamplestringforsalt$');
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "UPDATE info SET regdbname='$regdbname' WHERE id='".$id."'";
// Prepare statement
$stmt = $conn->prepare($sql);
// execute the query
$stmt->execute();
// echo a message to say the UPDATE succeeded
echo $stmt->rowCount() . " records UPDATED successfully";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
它显示了这个错误:
UPDATE info SET regdbname='test' WHERE id=''
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'regdbname' in 'field list'
我做错了什么?我的regdbname表存在于info中。为什么说找不到regdbname?
我的不好是用户而不是信息
答案 0 :(得分:3)
您有两个问题:
1)您的表没有列regdbname
。如果列表拼写错误,请检查列名是否正确。
2)$id
设置为空白。您没有在任何地方设置$id
。
答案 1 :(得分:1)
更新后的记录为0.这是因为您甚至没有定义 $ id 的值。
您的查询就像这样
UPDATE user SET regdbname='test' WHERE id=''
所以它搜索一个空的id,它没有,它没有更新任何行并将结果返回为0。