基本上我想将图像的路径存储到数据库中
示例:我想将'C:\wampp\www\project\images'
保存到数据库
而是Pdo删除所有反斜杠并将其转换为'C:wamppwwwprojectimages'
有没有办法让Pdo保持反斜杠?
使用代码进行更新:
$sql = "INSERT INTO meal (pic_path) VALUES('C:\wamp\www\project')";
$db = new PDO( $dsn, $username, $password );
$stmt = $db->prepare( $sql );
$stmt->execute();
答案 0 :(得分:3)
发生这种情况的原因是因为您在查询周围使用双引号("
),并且由于反斜杠(\
)是转义字符,因此它被删除。您可以通过将两个反斜杠放在一起来解决这个问题,这样就可以产生一个(C:\\wamp\\www\\project
)。
但是,将其作为参数传递给prepare
会更好,并且可以保留双引号。
$directory = "C:\wamp\www\project";
$sql = "INSERT INTO meal (pic_path) VALUES(?)";
$db = new PDO( $dsn, $username, $password );
$stmt = $db->prepare( $sql );
$stmt->execute(array($directory));
答案 1 :(得分:1)
您应该使用PDO的变量替换来安全地将值插入数据库。要编辑代码,它看起来像这样:
$sql = "INSERT INTO meal (pic_path) VALUES(?)";
$db = new PDO( $dsn, $username, $password );
$stmt = $db->prepare( $sql );
$stmt->execute(array('C:\wamp\www\project'));
PDO将取代?在您的查询中使用您传递的字符串的转义版本。