使用“/”进行连接时,查询不会插入数据库

问题描述 投票:-3回答:3
$query='insert into shopping_tbl (itemcode,name)values ("'$num."/".$barcode.","."$name"'")';

由于“/”,项目代码不会被插入。但是,如果我使用“ - ”代替“/”,它将被插入,但我需要使用“/”

样本数据:itemcode:23 / xxdd22,name:watchx

php mysql
3个回答
2
投票

正如我在评论中所说;如果您首先连接两个变量,然后在查询中使用新的变量赋值,而不是与一堆不必要的引号/点等进行斗争,这将更容易。

即:

$new = $num."/".$barcode;

然后做:

values ('$new','$name')

鉴于itemcode列是VARCHAR而不是INT;这对我们来说是最不为人知的。

虽然在这种情况下使用预准备语句会更安全和更好,但是如果涉及用户输入。


2
投票

这是人们在评论中讨论的参数化语句的示例。

$params = [ 'itemcode' => "$num/$barcode", 'name' => $name ];
$sql = 'insert into shopping_tbl (itemcode, name) values (:itemcode, :name)';
$stmt = $pdo->prepare($sql);
$stmt->execute($params);

停止在SQL中使用引号内的引号挣扎,你只会给自己一个眼睛疲劳。


0
投票

省略你的解决方案并不完美。你的引号有问题。在我的本地数据库上,这正常工作。

$query="insert into shopping_tbl (itemcode,name)values ('".$num."/".$barcode."','".$name."')";
© www.soinside.com 2019 - 2024. All rights reserved.