PHP和Mysql中非常基本的问题

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

我有一个数据库,通过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['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。