【问题标题】:MySql. After HTML button is clicked - TRUNCATE database tablemysql。单击 HTML 按钮后 - TRUNCATE 数据库表
【发布时间】:2013-12-13 03:11:24
【问题描述】:

所以我需要简单的事情,我需要在我的网站上创建按钮,单击按钮后,它应该截断数据库表,但我自己无法成功。那你能帮帮我吗?

我在这里尝试创建按钮:

<input type="button" id='delete' class='delete' value='Truncate' onClick="$truncate">
</input>

我知道这是在 HTML 中使用 PHP 变量的错误方法,但我不知道如何正确使用它。

这是我的 PHP 变量:

$truncate= "TRUNCATE TABLE myTable";

连接数据库就可以了:

$mysqli = new mysqli("localhost","database","password","asd");

所以也许这里是为截断数据库表创建按钮的更好方法?谢谢。

更新:

这也不起作用,单击按钮后什么也没有发生。

    if(isset($_POST['delete'])){
    $delete= "TRUNCATE TABLE myTable";
    }
?>
<input type="button" id='delete' class='delete' name="delete" value='Truncate' onClick="delete">
</input>

【问题讨论】:

  • 您可以使用 jQuery 和 ajax 执行 php 来截断表格,因此在按钮单击事件中,您可以使用 jQuery ajax 运行 php 脚本来截断表格
  • 谢谢你的回答,你能帮我吗?
  • 轻松如馅饼。使用您的输入按钮(并将其命名为“删除”),只需执行此操作if(isset($_POST['delete'])){ // code for SQL command to truncate } simple。
  • 感谢您的回答。我更新了我的问题,我的代码现在的样子,但它仍然无法工作。
  • 如果这是您的完整代码,则您没有包含任何数据库凭据。不止于此。这行是不正确的$delete= "TRUNCATE TABLE myTable"; 你不需要$delete= 但实际的 MySQL 命令这样做。

标签: php html mysql database button


【解决方案1】:

来,试试看。

PHP (delete_table.php)

<?php
// CONNECT TO THE DATABASE
$DB_HOST = "your_host";
$DB_NAME = "your_DB_name";
$DB_USER = "username";
$DB_PASS = "password";

$dbc = mysqli_connect($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME)
or die('Error connecting to MySQL server');

if(isset($_POST['delete'])){
$query = "TRUNCATE TABLE `yourTable` "; // replace yourTable with one to delete
$result = mysqli_query($dbc,$query)
or die('Error deleting table.');
}
else {
echo "Sorry";
}
?>

HTML 表单

<form method="post" action="delete_table.php">
<input type="submit" id='delete' class='delete' name="delete" value='Truncate'></input>
</form>

【讨论】:

  • 谢谢你这个工作,可能删除后它从delete_table.php重定向回main.php?再次感谢您。
  • 不客气。请标记为已接受。您可以在or die('Error deleting table.'); 之后添加header("Location: main.php");
【解决方案2】:

到目前为止,我还不是 jQuery 专家,但可能是这样的......当然未经测试

jQuery

$(document).ready(function() {

    $('#delete').click(function() {

        var table = $('#table').val(); //where #table could be an input with the name of the table you want to truncate

        $.ajax({
           type: "POST",
           url: "truncate.php",
           data: 'table='+ table,
           cache: false,
           success: function(response) {
                alert('table dropped');
            },
            error: function(xhr, textStatus, errorThrown) {
               alert('request failed');
            }
        });

    });
});

PHP (truncate.php)

    try {
        // create a new instance of a PDO connection
        $db = new PDO(DB_TYPE.':host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASS);
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch(PDOException $e) {
        // if the connection fails, display an error message
        echo 'ERROR: ' . $e->getMessage();
    }

    $table = $_POST['table'];

    $sql = 'TRUNCATE TABLE '.$mytable;

    $stmt = $db->prepare($sql);
    $stmt->execute();


?>

【讨论】:

  • 感谢您的回答,我需要在 PDO 连接中进行哪些更改?用我的数据替换 DB_NAME、DB_USER 和 DB_PASS?
  • 是的....它们是我的联系人,但您只需输入变量,例如 DB_NAME 是您的数据库名称等
猜你喜欢
  • 1970-01-01
  • 2016-03-24
  • 1970-01-01
  • 2016-06-22
  • 1970-01-01
  • 2018-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多