Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.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
如何知道php中的数据库何时变空_Php_Mysql - Fatal编程技术网

如何知道php中的数据库何时变空

如何知道php中的数据库何时变空,php,mysql,Php,Mysql,我正在用php和mysql做一个测验。现在我从数据库中获取问题,假设我不知道数据库中的问题数量。我希望我的代码获取数据,直到问题还没有结束,但我不知道有多少问题。那么什么条件适用呢。获取数据的代码 <?php function ravi($qid=NULL) { $con = mysql_connect('localhost', 'root', '') or die(mysql_error());

我正在用php和mysql做一个测验。现在我从数据库中获取问题,假设我不知道数据库中的问题数量。我希望我的代码获取数据,直到问题还没有结束,但我不知道有多少问题。那么什么条件适用呢。获取数据的代码

<?php

 function ravi($qid=NULL)
 {              

            $con = mysql_connect('localhost', 'root', '') or          die(mysql_error());
            $db = mysql_select_db('quiz', $con) or die(mysql_error());
            $q="select * from question where qno=$qid";
            $rq=mysql_query($q,$con);
            if(!$rq)
            {
            echo " the sql query faiiled to work ";
            }
            else
            {

            while ($sub_row=mysql_fetch_array($rq))
            {
            $id=$sub_row["qno"];
            $question=$sub_row["question"];
            $option1=$sub_row["option1"];
            $option2=$sub_row["option2"];
            $option3=$sub_row["option3"];
            $option4=$sub_row["option4"];


            echo "<h5>Q".$id." : ".$question."</br></h5>";   
            echo"</br>
                <br>

                <h4><input type= radio id='1' name=\"{$id}\" value=\"{$option1}\">$option1</h4>
                </br>

                <h4><input type= radio id='2' name=\"{$id}\" value=\"{$option2}\">$option2</h4>
                </br>

                <h4><input type= radio id='3' name=\"{$id}\" value=\"{$option3}\">$option3</h4>
                </br>

                <h4><input type= radio id='4' name=\"{$id}\" value=\"{$option4}\">$option4</h4>
                </br></br>";
                }
          }}

                    ?>

但是你真的应该停止使用mysql,正如评论中所说的那样。

为了大大增强安全性,你应该使用mysqli,它使用的是预处理语句自动转义类型转换变量

大概是这样的:

# Database credentials
$mysqlsrv = "localhost";
$mysqlusr = "myusr";
$mysqlpsw = "mypsw";
$mysqldb  = "mydb";

# Connect to database in the secure "prepared statement" way
$mysqli = new mysqli($mysqlsrv,$mysqlusr,$mysqlpsw,$mysqldb);

# Check for database connection errors
if(mysqli_connect_errno()) {
    echo "Cannot connect to database";
    exit();
}

$searchNum = 1;
$searchStr = "Text";

$query = "SELECT question FROM mytable WHERE num=? OR str=?";
if($stmt = $mysqli->prepare($query)) {
    $stmt->bind_param("is",$searchNum,$searchStr);
    $stmt->execute();
    $stmt->bind_result($question);

    if($stmt->fetch()) {
        while($stmt->fetch()) {
            echo "$question<br />";
        }
    } else {
        echo "Could not find any post in table";
    } // if($stmt->fetch())

    $stmt->close();
} // if($stmt = $mysqli->prepare($query))
不再支持mysql_*函数,它们已经不再维护,将来也将继续使用。您应该使用或更新代码,以确保将来项目的功能。
# Database credentials
$mysqlsrv = "localhost";
$mysqlusr = "myusr";
$mysqlpsw = "mypsw";
$mysqldb  = "mydb";

# Connect to database in the secure "prepared statement" way
$mysqli = new mysqli($mysqlsrv,$mysqlusr,$mysqlpsw,$mysqldb);

# Check for database connection errors
if(mysqli_connect_errno()) {
    echo "Cannot connect to database";
    exit();
}

$searchNum = 1;
$searchStr = "Text";

$query = "SELECT question FROM mytable WHERE num=? OR str=?";
if($stmt = $mysqli->prepare($query)) {
    $stmt->bind_param("is",$searchNum,$searchStr);
    $stmt->execute();
    $stmt->bind_result($question);

    if($stmt->fetch()) {
        while($stmt->fetch()) {
            echo "$question<br />";
        }
    } else {
        echo "Could not find any post in table";
    } // if($stmt->fetch())

    $stmt->close();
} // if($stmt = $mysqli->prepare($query))