gpt4 book ai didi

php - 使用 PHP/SQL 将带有逗号 (,) 的值插入数据库

转载 作者:行者123 更新时间:2023-11-29 10:05:33 25 4
gpt4 key购买 nike

我试图将带有逗号的值插入数据库,但逗号正在分割查询,以便逗号之前的字符串部分进入正确的列,而逗号之后的位进入下一个和每个之后查询中的项目被移入下一列。

我的数据库连接文件如下:

define('DB_HOST', 'localhost');
define('DB_NAME', '********');
define('DB_USER', '********');
define('DB_PASS', '********');
define('DB_CHAR', 'utf8');

class DB
{
protected static $instance = null;
protected function __construct() {}
protected function __clone() {}

public static function instance(){
if (self::$instance === null){
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => FALSE,
);
$dsn = 'mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset='.DB_CHAR;
self::$instance = new PDO($dsn, DB_USER, DB_PASS, $opt);
}
return self::$instance;
}

public static function __callStatic($method, $args){
return call_user_func_array(array(self::instance(), $method), $args);
}

public static function run($sql, $args = []){
if (!$args){
return self::instance()->query($sql);
}
$stmt = self::instance()->prepare($sql);
$stmt->execute($args);
return $stmt;
}
}

然后我像这样进行查询:

$item1 = 'item1';
$item2 = 'item_with_a_,_symbol';
$item3 = 'item3';

$params = [$item1,$item2,$item3];
$sql = "INSERT INTO table (col1,col2,col3) VALUES(?,?,?)";
$stmt = DB::run($sql,$params);

在这种情况下,我的数据库将如下所示:

col1            col2            col3
item1 item_with_a_ _symbol

解决这个问题的最佳方法是什么?

最佳答案

在运行插入之前尝试转义输入。 mysqli_real_escape_string()应该可以解决问题

Check this entry PHP手册中供引用

关于php - 使用 PHP/SQL 将带有逗号 (,) 的值插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51987257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com