尝试以一个人的身高更新数据库。我已经尝试了mysqli_real_escape_string的所有变体,addslashes甚至str_replace,以尝试使用单引号和双引号来更新数据库。假设一个人为6'1“。如何将该值上传到数据库中?
'default' => 'mysql',
'mysql' => [
'driver' => 'mysql',
'dump_command_path' => '/opt/lampp/bin', // only the path, so without 'mysqldump' or 'pg_dump'
'dump_command_timeout' => 60 * 5, // 5 minute timeout
'dump_using_single_transaction' => true, // perform dump using a single transaction
'host' => env('DB_HOST', '10.8.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', ''),
'username' => env('DB_USERNAME', ''),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
当我得到结果时,在数据库中返回的结果总是相同的:
#MYSQL
DB_HOST=127.0.0.1 //I have tried also localhost
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
最好接受它以这种方式更新,因为我的html页面将呈现(6'1“)而不是({$height = '6\' 1"';
$height = mysqli_real_escape_string($mysqli, $height);
$sql = "INSERT INTO persons (height) VALUES ('$height')";
),还是有更好或更安全的方式来更新数据库? / p>
答案 0 :(得分:-1)
注意:mysqli_real_escape_string并不总是安全的
示例:SQL injection that gets around mysql_real_escape_string()
您应该使用prepared statements或PDO来防止SQL注入。
但是要保存高度,您可以仅使用一个INT列并将高度以最小单位(英寸)放置,然后在要显示时将其转换,例如6'1“是73英寸。要保存高度,则可以反转它。