【问题标题】:Web server exited unexpectedly, restarting new instanceWeb 服务器意外退出,重新启动新实例
【发布时间】:2012-08-25 23:45:27
【问题描述】:

我没有任何其他选择,只能再次在这里问...问题让我在过去 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 服务器意外退出,重新启动新实例。

以前有没有人遇到过这个问题,我该如何处理?

谢谢

【问题讨论】:

    标签: php javascript apache


    【解决方案1】:

    以前有人见过这个问题吗?

    不是我,我不使用 mysql_* 函数。

    您的 INSERT 查询参数和值不匹配。

    所以我将您的示例代码移植到 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.');
    }
    ?>
    

    【讨论】:

    • 非常感谢你,伙计......我只是无法理解我犯了多么愚蠢的错误......我想整天坐着编程并不酷
    猜你喜欢
    • 1970-01-01
    • 2014-09-25
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多