所以这可能是一个非常愚蠢/基本的问题,但我有这个简单的PHP函数(它可以工作)并将数据插入PostgreSQL DB。
我的问题是当它遇到特定的数据时;
function insertData($pg, $csvfile)
{
$x = 0;
foreach ($csvfile as $data)
{
$email = $csvfile[$x]['email'];
$name = $csvfile[$x]['name'];
$surname = $csvfile[$x]['surname'];
$query = "INSERT INTO users (email, name, surname) VALUES ('$email', '$name', '$surname')";
$result = pg_query($pg, $query);
$x++;
}
}
字符串
虽然这是有效的,但它的福尔斯与姓氏有关,例如:
奥黑尔
很明显,这是因为PHP代码是这样的:
. VALUES(' email protected(https://stackoverflow.com/cdn-cgi/l/email-protection) ','John','O'hare')";
但是我不确定我应该如何构造PHP来实现这一点。
4条答案
按热度按时间ve7v8dk21#
试试这个:
字符串
gk7wooem2#
你需要转义字符串参数。如果你能使用PDO扩展,那就更好了,因为
prepared statements
可以为你处理转义,也有助于防止SQL注入和其他一些安全问题。字符串
j5fpnvbx3#
使用预处理查询的解决方案
字符串
6qftjkof4#
所以我注意到了来自@Karsten Koop和@TOH19的建议,并提出了这段代码,它正在工作;
字符串