$query='insert into shopping_tbl (itemcode,name)values ("'$num."/".$barcode.","."$name"'")';
由于“/”,项目代码不会被插入。但是,如果我使用“ - ”代替“/”,它将被插入,但我需要使用“/”
样本数据:itemcode:23 / xxdd22,name:watchx
正如我在评论中所说;如果您首先连接两个变量,然后在查询中使用新的变量赋值,而不是与一堆不必要的引号/点等进行斗争,这将更容易。
即:
$new = $num."/".$barcode;
然后做:
values ('$new','$name')
鉴于itemcode
列是VARCHAR而不是INT;这对我们来说是最不为人知的。
虽然在这种情况下使用预准备语句会更安全和更好,但是如果涉及用户输入。
这是人们在评论中讨论的参数化语句的示例。
$params = [ 'itemcode' => "$num/$barcode", 'name' => $name ];
$sql = 'insert into shopping_tbl (itemcode, name) values (:itemcode, :name)';
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
停止在SQL中使用引号内的引号挣扎,你只会给自己一个眼睛疲劳。
省略你的解决方案并不完美。你的引号有问题。在我的本地数据库上,这正常工作。
$query="insert into shopping_tbl (itemcode,name)values ('".$num."/".$barcode."','".$name."')";