我希望能够消除mysql中的特殊字符。我使用的是mysql_real_escape_string,但我被告知它不正确,很快就会停止使用
在我的情况下,使用mysql_real_escape_string
的替代方法是什么?还是有另一种方法吗?
我正在解析CSV表单URL并创建INSERT语句。在我的情况下,我通过网址从CSV中读取数据,在线示例不会考虑$f_pointer
。
以下是要插入的数据行之一的示例:
注意: '
中的Green's Mill
导致问题。
INSERT INTO scores(place,person,score,grade,round,location)values('-','Alex','2','5','','Green's Mill')
我使用的是mysql_real_escape_string - 显然非常糟糕
<?php
$servername = "localhost";
$username = "root";
$password = "XXXX";
$dbname = "player";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
$f_pointer=fopen("compress.zlib://https://www.url.com/api/v2/projects/xxxx/last_ready_run/data?api_key=xxx&format=csv","r");
$sql = "TRUNCATE TABLE scores";
$conn->query($sql);
if ( $f_pointer === false )
die ("invalid URL");
$ar=fgetcsv($f_pointer);
while(! feof($f_pointer)){
$ar=fgetcsv($f_pointer)
;
$sql="INSERT INTO scores(place,person,score,grade,round,location)values('$ar[0]','$ar[1]','$ar[2]','$ar[3]','$ar[4]','$ar[5]')";
$conn->query($sql);
echo $sql;
echo "<br>";
}
?>
由于位置字段中的特殊字符'
,无法插入。
INSERT INTO scores(place,person,score,grade,round,location)values('-','Alex','2','5','','Greens Mill')
注意: Green's Mill
必须是Greens Mill
而不是'
。