我有一个 php 代码,它将向数据库表中插入一个值。我正在使用MySql。这里我必须存储一个包含“$”符号的字符串(例如$V#CDFBvQi)。但是当我存储这个值时,在存储之前我想用'\$'替换子字符串'$',这样在存储之前这个词就会像这样\$V#CDFBvQi。我使用下面的 PHP 代码来替换子字符串。
$dbp = $_POST['varname']; // here $dbp value is $V#CDFBvQi.
if (strpos($dbp, '$') !== false) {
$dbp = str_replace("$", "\\$", $dbp);
}
echo $dbp; //here $dbp value is \$V#CDFBvQi.
这段代码工作正常。
但是当我插入值 $dbp (现在是\$V#CDFBvQi)时,我的数据库表仅包含 $V#CDFBvQi。这是我的 MySql 插入代码。
$link = mysql_connect("localhost", "root", "root");
mysql_select_db("dbsamplename", $link);
mysql_query("insert into sampletable values('".$dbp."')");
我该怎么做?请指教,因为我是 PHP 的初学者。
最佳答案
Mysql 扩展已弃用,不应使用。将 mysqli 与准备好的语句一起使用,您无需担心转义字符串。我相信下面的代码可以解决您的问题。
示例:
$stmt = $mysqli -> prepare("insert into sampletable values(?)");
/* Bind parameters */
$stmt -> bind_param("s", $dbp);
/* Execute it */
$stmt -> execute();
完整示例请参见:http://mattbango.com/notebook/code/prepared-statements-in-php-and-mysqli/
关于php , mysql 插入 $ 符号不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17760407/