PHP和Mysql中非常基本的问题
我有一个数据库,通过PHP访问 我已使用所需的凭据连接到数据库 我有一个formhtml,从中可以获得输入数据库所需的值 我正在做这样的事情PHP和Mysql中非常基本的问题,php,mysql,Php,Mysql,我有一个数据库,通过PHP访问 我已使用所需的凭据连接到数据库 我有一个formhtml,从中可以获得输入数据库所需的值 我正在做这样的事情 Values from form $value = $_POST['id']; $value1 = $_POST['title']; $sql = "UPDATE table SET title='$value1' where id ='$value'"; 并且使用像这样的mysql语法 Values from form $value = $_POST
Values from form
$value = $_POST['id'];
$value1 = $_POST['title'];
$sql = "UPDATE table SET title='$value1' where id ='$value'";
并且使用像这样的mysql语法
Values from form
$value = $_POST['id'];
$value1 = $_POST['title'];
$sql = "UPDATE table SET title='$value1' where id ='$value'";
或者有语法错误吗
如何在PHP中显示错误
帮助很可能您在$value1中插入了一个引号,这会导致字符串以缩写形式终止 一个简单的解决方法是:
$value1 = mysql_real_escape_string($_POST['title']);
您应该转义来自用户输入的所有值,因为这是保护应用程序的第一步,也是最重要的一步。在不转义数据的情况下,应用程序很容易被黑客攻击。很可能是在$value1中插入了一个引号,这会导致字符串突然终止 一个简单的解决方法是:
$value1 = mysql_real_escape_string($_POST['title']);
您应该转义来自用户输入的所有值,因为这是保护应用程序的第一步,也是最重要的一步。在不转义数据的情况下,应用程序很容易被黑客攻击。您的代码看起来不错,语法没有问题 但是,您应该对表单查找中输入的任何内容进行转义: 要在PHP中显示错误,请编辑PHP.INI文件搜索“error”并阅读注释以确定如何设置级别,或者通过代码:
error_reporting(E_ALL);
ini_set("display_errors", 1);
希望这有帮助,享受吧 代码看起来不错,语法没有问题 但是,您应该对表单查找中输入的任何内容进行转义: 要在PHP中显示错误,请编辑PHP.INI文件搜索“error”并阅读注释以确定如何设置级别,或者通过代码:
error_reporting(E_ALL);
ini_set("display_errors", 1);
希望这有帮助,享受吧 您可能在$value或$value1中有一个包含“.”的值。这会导致语法错误,还表明您的代码容易受到SQL注入的攻击 用mysql\u real\u Escape\u字符串转义这两个值 假设$value==O'brien 您的SQL变成:
$sql = "UPDATE table SET title='$value1' where id ='O'brien'";
MySQL引擎会看到以下内容,其中包含一个额外的“字符串”,后跟无效代码
UPDATE table SET title='something' where id ='O'brien';
您可能在$value或$value1中有一个包含“”的值。这会导致语法错误,还表明您的代码容易受到SQL注入的攻击 用mysql\u real\u Escape\u字符串转义这两个值 假设$value==O'brien 您的SQL变成:
$sql = "UPDATE table SET title='$value1' where id ='O'brien'";
MySQL引擎会看到以下内容,其中包含一个额外的“字符串”,后跟无效代码
UPDATE table SET title='something' where id ='O'brien';
那么,是否报告了任何错误,或者您只是在检查您使用的语法是否正确一切正常,只是在查询中使用表单数据之前没有对其进行清理。相关:@holodoc:u“清理”是什么意思?您需要清理来自表单的数据以防止SQL注入-。对于准备好的语句MySQLi或PDO,您不需要对任何内容进行清理,但是,由于您没有明确说明您使用的是哪个扩展MySQL、MySQLi、PDO,我想您使用的是需要清理的基本MySQL。是否报告了任何错误,或者您只是检查您使用的语法是否正确一切正常,只是在查询中使用表单数据之前没有对其进行清理。相关:@holodoc:u“清理”是什么意思?您需要清理来自表单的数据以防止SQL注入-。对于准备好的语句MySQLi或PDO,您不需要对任何内容进行清理,但是因为您没有明确说明您使用的是哪个扩展MySQL、MySQLi、PDO,我想您使用的是需要清理的基本MySQL。