0

他に選択肢はありませんが、ここでもう一度質問します...そして問題が過去5時間私を殺しています. javascript関数を呼び出すボタンを取得すると、javascriptが別のphpページを開き、MySQLデータベースに挿入します。

HTML コード:

<ul>
<li id="ConfirmButton" name="Insert" onclick="GetAllIDs()"><a>Potvrdi</a></li>
</ul>

Javascript コード:

var request_type;
var browser = navigator.appName;
if (browser == "Microsoft Internet Explorer") {
request_type = new ActiveXObject("Microsoft.XMLHTTP");
}
else {
request_type = new XMLHttpRequest();
}

var http = request_type;
http.open('get', 'insert.php?MatchID='+MatchID+'&TipID='+TipID+'&UserID=' + 1,true);
http.send(null); 

PHP コード:

include('config.php');
$matchID = $_GET['MatchID'];
$tipID = $_GET['TipID'];
$userID = $_GET['UserID'];

// Escape User Input to help prevent SQL Injection  
$MatchID = mysql_real_escape_string($matchID); 
$TipID = mysql_real_escape_string($tipID); 
$UserID = mysql_real_escape_string($userID); 

$insertTicket_sql = "INSERT INTO 
betslips(DateTime,MatchID,TipID,UserID)
VALUES(".$MatchID.",".$TipID.",'".date("Y-m-d H:i:s")."',".$UserID.")";
$insertTick= mysql_query($insertTicket_sql) or die(mysql_error());

したがって、このコードを実行してブレークポイントを使用すると、php コードでフォームを介して送信したすべてのパラメーターが正常に表示され、すべてそこにありますが、コードに到達する$insertTickと、エラー web server exited unexpectedly、restarting new instance が発生します。

誰かが以前にこの問題を見たことがありますか?どうすれば対処できますか?

ありがとう

4

1 に答える 1

0

誰かが以前にこの問題を見たことがありますか?

私ではありません。mysql_*関数は使用しません。

INSERTクエリパラメータと値が一致しません。

したがって、iveはサンプルコードをPDOに移植しました。

<?php 
//PDO Connect
try{
    $con = new PDO('mysql:host=127.0.0.1;dbname=yourDB','root','password');
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $con->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    $con->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
}catch (Exception $e){
    die('Cannot connect to database. Details:'.$e->getMessage());
}

//Check that the variables are set
if(isset($_GET['MatchID']) && isset($_GET['TipID']) && isset($_GET['UserID'])){

    //Prepare your query
    $query = $con->prepare("INSERT INTO betslips (DateTime,MatchID,TipID,UserID)
                            VALUES ('".date("Y-m-d H:i:s")."', :matchID, :tipID, :userID)");

    //Bind your values with the placeholders
    $query->bindParam(":matchID", $_GET['MatchID']);
    $query->bindParam(":tipID", $_GET['TipID']);
    $query->bindParam(":userID", $_GET['UserID']);

    //Execute
    $query->execute();
    die('Success!');
}else{
    die('Error: Parameter not set.');
}
?>
于 2012-08-26T00:07:09.287 に答える