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

时间:2018-03-06 15:56:09

标签: php mysql

$query='insert into shopping_tbl (itemcode,name)values ("'$num."/".$barcode.","."$name"'")';

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

示例数据:itemcode:23 / xxdd22,name:watchx

3 个答案:

答案 0 :(得分:2)

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

即:

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

然后做:

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

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

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

答案 1 :(得分: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中使用引号内的引号挣扎,你只会给自己一个眼睛疲劳。

答案 2 :(得分:0)

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

$query="insert into shopping_tbl (itemcode,name)values ('".$num."/".$barcode."','".$name."')";