Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.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 MySQL:如何使用干净的数据插入和读取数据库_Php_Mysql_String - Fatal编程技术网

PHP MySQL:如何使用干净的数据插入和读取数据库

PHP MySQL:如何使用干净的数据插入和读取数据库,php,mysql,string,Php,Mysql,String,我有一个MySQL数据库,有3列id、问题、答案。我用一段代码将get方法插入到数据库中,并对其进行了清理,但我正在mysqli中搜索一个方法。当我想从数据库中得到问题匹配的答案时,我会得到空白页。 这是我用来插入它的代码,但我需要mysqli: require 'db.php'; function array_sanitize(&$item) { $item = htmlentities(strip_tags(mysql_real_escape_string($item))

我有一个MySQL数据库,有3列id、问题、答案。我用一段代码将get方法插入到数据库中,并对其进行了清理,但我正在mysqli中搜索一个方法。当我想从数据库中得到问题匹配的答案时,我会得到空白页。 这是我用来插入它的代码,但我需要mysqli:

require 'db.php';

function array_sanitize(&$item) 
{
    $item = htmlentities(strip_tags(mysql_real_escape_string($item)));
}

function InsertData($register_data) 
{
    array_walk($register_data, 'array_sanitize');
    $fields = '`' . implode('`, `', array_keys($register_data)) . '`';
    $data   = '\'' . implode('\', \'', $register_data) . '\'';
    mysql_query("INSERT INTO `db_question` ($fields) VALUES ($data)");
}

if ($_GET['code'] == "somecode")
{
    $data = array(
        'question' => $_GET['q']),
        'answer'   => $_GET['a']
    );
    InsertData($data);
    exit();
}
我更大的问题是当我通过匹配问题来阅读答案时:

require 'db.php';

function sanitize($data) 
{
   return htmlentities(strip_tags(mysql_real_escape_string($data)));
}

if ($_GET['code'] == "somecode")
{
    $question = sanitize($_GET['q']);
    $result = mysql_query("SELECT `answer` FROM `db_question` WHERE `question` = '$question'");
    echo "
    <table id=\"box-table-b\">
    <thead>
        <tr>
        <th scope=\"col\">Answer</th>
        </tr>
    </thead>";
    if($row = mysql_fetch_array($result)) 
    {
        echo "<tbody>";
        echo "<tr>";
        echo "<td>" . $row['answer'] . "</td>";     
        echo "</tr>";
        echo "</tbody>";
    }
    echo "</table>";
}
我认为问题与get方法不同,因为数据库中的问题和答案也包含类似于:ă、î、ș、ț的字母 使用get方法,空格将替换为%20,当我尝试通过id获取答案时,我得到了?而不是那些信。 如果有人能帮我

即使我已经更新了代码:

$question = sanitize($_GET['q']);
        $result = mysql_query("SELECT `answer` FROM `tip_question` WHERE `question` = '$question'");
        echo "
        <table id=\"box-table-b\">
        <thead>
            <tr>
            <th scope=\"col\">Answer</th>
            </tr>
        </thead>";
        if($row = mysql_fetch_array($result)) 
        {
            echo "<tbody>";
            echo "<tr>";
            echo "<td>" . utf8_encode($row['answer']) . "</td>";        
            echo "</tr>";
            echo "</tbody>";
        }
        echo "</table>";

我仍然无法从数据库中得到任何答案。有人能告诉我为什么吗?

如果你得到一个问号,那么就有一个字符集问题。你可以试试


要将您的代码更改为mysqli,请检查

ă、î、ș、ț是特殊特许

因此,您正在使用utf-8编码

另请检查链接:

使用以下代码:

if($row = mysql_fetch_array($result)) 
    {
        echo "<tbody>";
        echo "<tr>";
        echo "<td>" . utf8_encode($row['answer']). "</td>";     
        echo "</tr>";
        echo "</tbody>";
    }

. 它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO,。但是正在做同样的事情,我得到一个空白页,它不想与问题匹配,即使是utf8编码的。将此代码添加到您的连接文件$conn=mysql\U connectlocalhost、root或dieCan not connect。错误$db=mysql\u选择\u dbsub\u电视,$conn或dieCan无法连接。错误;mysql_query'SET NAMES UTF8;'$康涅狄格州;mysql\u query'SET COLLATION\u CONNECTION=utf8\u general\u ci;'$康涅狄格州;mysql_query'SET NAMES UTF8;'$分贝;mysql\u query'SET COLLATION\u CONNECTION=utf8\u general\u ci;'$分贝;mysql\u客户端\u编码$conn;