0

ajax を使用してデータベースにデータを挿入しようとしていますが、何も機能していません。私が間違っていることを教えてもらえますか?

INDEX.PHP

<html>
    <head>
        <title>Title</title>
        <script type="text/javascript">
            function myLoad(){
                if(window.XMLHttpRequest){
                    var xmlhttp = new XMLHttpRequest();
                }else{
                    var xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
                }

                xmlhttp.open('GET', 'generate.php?text=' + document.getElementById('textarea').value, true);
                xmlhttp.send();
                xmlhttp.onreadystatechange = function(){
                    if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
                        window.document.getElementById('par').innerHTML = xmlhttp.responseText;
                    }
                }
            }
        </script>
    </head>

    <body>
        <div id="par"></div>
        <input type="text" id="textarea">
        <input type="button" id="button" value="Click Me" onClick="myLoad();"/>
    </body>
</html>

GENERATE.PHP

<?php
    require 'php/connect.inc.php';

    if(isset($_GET['text']) && !empty($_GET['text'])){
        $name = $_GET['text'];
        $query = "INSERT INTO users VALUES('', '$name', 'pass123', 'greg')";

        if($mysql_query = mysql_query($query)){
            echo 'Success';
        }else{
            echo 'Failed';
        }
    }
?>

CONNECT.INC.PHP

<?php
    $mysql_host = 'localhost';
    $mysql_user = 'root';
    $mysql_pass = '';

    $mysql_error = 'Could not connect';
    $a_database = 'a_database';

    if(!@mysql_connect($mysql_host, $mysql_user, $mysql_pass) OR !@mysql_select_db($a_database)){
        die($mysql_error);
    }
?>
4

1 に答える 1

0

これが問題全体の原因ではないかもしれませんが、問題を混乱させる可能性があります。

$query = "INSERT INTO users VALUES('', '$name', 'pass123', 'greg')";

Mysql5+ を使用していて、最初の VALUES が自動インクリメントされた ID 番号である場合、その INSERT は失敗します。それを除外するか、null または 0 (引用符なし) にします。空の文字列 '' 挿入は、機能しないはずの Mysql4 の「機能」でした。

つまり、Mysql5 以降 ....

$query = "INSERT INTO users VALUES(0, '$name', 'pass123', 'greg')";
于 2013-01-24T14:11:06.630 に答える