Обновить таблицу в php

1

У меня плохое имя неправильно.

Но он по-прежнему не обновляется, он говорит, что обновлено 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");
}
?>

Когда вы нажмете на UPDATE, он отправит вас на 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 существует в информации. Почему сказывается, что имя regdbname не найдено?

Мой плохой был пользователь, а не информация

  • 4
    проверьте это внимательно, название вашей колонки может иметь неправильное написание
  • 1
    Разместите свою таблицу
Показать ещё 12 комментариев
Теги:
database
pdo

2 ответа

3

У вас есть два вопроса:

1) В вашей таблице нет номера столбца regdbname. Проверьте, правильно ли указано имя столбца, если вы его неправильно опечатали.

2) $id установлен пустым. Вы не устанавливаете $id нигде.

  • 0
    Наведите курсор мыши на ссылку, чтобы увидеть, сгенерирован ли идентификатор или нет.
  • 0
    Означает ли этот комментарий, что вы работаете с register_globals установленным в ON? И поэтому ожидать, что $id будет автоматически существовать в вашем скрипте ??
Показать ещё 5 комментариев
1

Обновленные записи - 0. Это связано с тем, что вы даже не определили значение для $ id.

ваш запрос подобен этому

UPDATE user SET regdbname='test' WHERE id=''

поэтому он ищет пустой идентификатор, у него нет ни одного, он не обновляет строку и возвращает результат как 0.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню