Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我不能用此表单在数据库中插入数据?_Javascript_Php_Html_Css_Ajax - Fatal编程技术网

Javascript 为什么我不能用此表单在数据库中插入数据?

Javascript 为什么我不能用此表单在数据库中插入数据?,javascript,php,html,css,ajax,Javascript,Php,Html,Css,Ajax,我曾尝试过在internet上遇到的几种代码,但我无法达到我的目标,即创建一个包含3个下拉列表的表单,然后将插入的数据输入到SQL表中。我的代码没有按预期工作,两周来我一直在努力解决这个问题。因此,我将感谢任何帮助缓解这一问题 <?php $ligacao = new mysqli("localhost", "root", "", "pap"); if ($ligacao->connect_errno == 0) { if (isset($_POST['submit']))

我曾尝试过在internet上遇到的几种代码,但我无法达到我的目标,即创建一个包含3个下拉列表的表单,然后将插入的数据输入到SQL表中。我的代码没有按预期工作,两周来我一直在努力解决这个问题。因此,我将感谢任何帮助缓解这一问题

<?php
$ligacao = new mysqli("localhost", "root", "", "pap");
if ($ligacao->connect_errno == 0) {
    if (isset($_POST['submit'])) {

        $instic = $conn->query("INSERT INTO tickets(problema, eletrecidade, agua, assunto, info) VALUES('" . $_POST["prob"] . "', '" . $_POST["elet"] . "','" . $_POST["agua"] . "','" . $_POST["ass"] . "','" . $_POST["info"] . "')");
        $instic->bind_param("sssss", $_POST["prob"], $_POST["elet"], $_POST["agua"], $_POST["ass"], $_POST["info"]);
        $instic->execute();
    }
}
$ligacao->close();
?>

<form method="POST" action="inserir.php" enctype="multipart/form-data">
    <fieldset>
        <!-- Escolher problema geral -->
        <label>Problema Geral</label>
        <select name="prob">
            <option disabled selected hidden>Escolha uma opção...</option>
            <option name="luz" value="Luz">Luz</option>
            <option name="agua" value="Agua">Agua</option>
            <option name="ele" value="Elevador">Elevador</option>

        </select>

        <!-- Escolher problemas eletrecidade -->
        <label>Eletrecidade</label>
        <select name="elet" id="elet">
            <option disabled selected hidden>Escolha uma opção...</option>
            <option name="semluz" value="Nao ha luz">Não há luz</option>
            <option name="curto" value="Curto Circuito">Curto circuito</option>

        </select>

        <!-- Escolher problemas agua -->
        <label>Agua</label>
        <select name="agua" id="agua">
            <option disabled selected hidden>Escolha uma opção...</option>
            <option name="semagua" value="Nao ha agua">Não há água</option>
            <option name="inund" value="Inundacao">Inundação</option>

        </select>
        <label for="assunto">Assunto:</label>
        <input type="text" name="ass" id="ass" maxlength=100 placeholder="Assunto">
    </fieldset>
    <fieldset>
        <label for="info">Info:</label>
        <textarea type="text" name="info" id="info" maxlength=50 placeholder="Descrição detalhada"></textarea>
    </fieldset>
    <div>
        <input type="reset" value="Limpar">
        <input type="submit" value="Submeter">
    </div>
</form>
在inserir.php文件中:

使用创建到数据库的连接

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";


$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
使用$\u POST获取表单数据

$prob = $_POST['prob'];
$elet = $_POST['elet'];
$agua = $_POST['agua'];
$ass  = $_POST['ass'];
$info = $_POST['info'];
并使用sql语句插入

$sql = "INSERT INTO tickets(problema, eletrecidade, agua, assunto, info) VALUES('$prob','$elet','$agua','$ass','$info')";
确保使用“”的字符串值,而不使用整数。并执行命令

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

更多信息请访问:

Hi@Daniel,您面临的确切问题是什么?使用bind_param和execute进行查询没有意义。使用prepared statements版本,其中使用prepare-then-bind/execute。阅读你正在使用的函数/方法。我对此不太了解,你能为我修改我的代码吗?不,我们是来帮助你做你自己的工作的,不是来帮你做的。看看ok thank的mate上的例子,但是我不想定义变量的值,变量的值是由用户定义的,对吗?{$query=INSERT-INTO-tickets-problema、eletrecidade、agua、assto、info-VALUES、?、?、?;$stmt=$mysqli->prepare$query;$stmt->bind_-paramsss、$val1、$val2、$val3、$val4、$val5;$val1=$\u-POST['prob'];$val2=$\u-POST['elet'];$val3=$\u-POST['agua'];$val4=$\u-POST['ass'],这不是一个答案,充其量只是一个评论,第二,它只是一个链接,链接可能会随着时间的推移而改变,或者一起删除,而你在答案中没有提供进一步的信息或解释,第三,告诉OP阅读和搜索网页对任何人都没有帮助。我发送了官方文档的链接,作为评论而不是答案。我说的一点对任何人都没有用,那就是尝试阅读和搜索web,这也不是对任何特定问题的真正答案,而不是链接本身,它可能对你有帮助,也可能对你没有帮助。更好的是,尽管你的例子很容易受到SQL注入攻击。我不启动网站,只是为了学校,我不关心SQL注入,我只是真的需要正确的代码,帮助我它必须是面向对象的吗?另外,请从当前HTML页面中删除PHP代码