php , mysql 插入 $ 符号不起作用

标签 php mysql

我有一个 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/

相关文章:

php - 使用 SimpleXML 获取 "Form"元素,该元素具有类型为 "input"的 "password"标签?

mysql - PGError : ERROR: column "inboxes.id" must appear in the GROUP BY clause or be used in an aggregate function

mysql - 在 MySQL 8.0+ 中使用 MySQL 驱动程序在 MySQL 语句中传递 C++ 变量

c# - Entity Framework 数据库首先与 MySQL 不工作

php - 如何在 PHP 整数中保留前导零

php - yii 验证码没有正确验证

php - 在woocommerce_add_to_cart之前执行一段代码

MySQL数据库加载到服务器

php - 基于标签显示图像 - jQuery Datatables

javascript - 将 HTML 表格导出为包含文本和图像的 Excel