(PHP)str_replace在插入数据库时​​不起作用

时间:2014-04-14 03:00:45

标签: php string str-replace

我有一个问题。我不擅长php,所以我在寻求帮助。我在数据库中创建了几行行表:

enter image description here

我也有简单(可能不安全)(插入数据)脚本:

连接:

$db = new PDO('mysql:host=localhost;dbname=xxx;charset=utf8', 'xxx', 'xxx');

发布数据

$renginioid = ($_POST['renginioid']);
$renginioid = strtolower($_POST['renginioid']);
$renginioid = str_replace(" ", "-", $renginioid);
$renginioid = str_replace("ą", "a", $renginioid);
$renginioid = str_replace("č", "c", $renginioid);
$renginioid = str_replace("ę", "e", $renginioid);
/* etc */

插入

$stmt = $db->prepare("INSERT INTO renginiai(renginioid, pavadinimas, vadovai, programa, menesis, adresas, mda6) VALUES('$renginioid', '$pavadinimas', '$vadovai', '$programa', '$menesis', '$adresas', '$mda6')");
$stmt->execute();

问题:

我在$ renginioid和$ pavadinimas使用相同的POST。 strtolower工作得很好,而str_replace根本不起作用。

我需要将'到a,č替换为c ...等等,但是这个脚本不起作用。 (我需要将这些字母转换成英文字母)。

其他问题:

这个脚本可以在所有行中插入英文字母,但是如果我使用其他字母,那么除了renginioid行之外,所有行都要完成工作。这一排对我来说几个小时都很痛苦。

renginioid row是主要行。

感谢大家的帮助。

抱歉英文不好。

2 个答案:

答案 0 :(得分:0)

HTML中显示utf8特殊字符,请将其放入<head>

<meta charset="utf-8">

在PHP中从表行显示utf8,以这种方式存储在$variable节目中:

utf8_encode($variable);

要推送表格中的行,请使用:

utf8_decode($variable);

更多信息,这里:

http://www.php.net/manual/es/function.utf8-encode.php http://www.php.net/manual/es/function.utf8-decode.php

使用此特殊html字符表来改进str_replace代码:http://webdesign.about.com/od/localization/l/blhtmlcodes-cz.htm

答案 1 :(得分:0)

为此使用htmlspecialchars:)

   $renginioid = htmlspecialchars($_POST['renginioid'], ENT_QUOTES, 'utf-8');