Php SQL查询失败
我正在尝试将数据插入数据库,但此查询失败,我无法找出原因。我刚刚得到“错误更新数据库”输出 表格详情Php SQL查询失败,php,mysql,sql,Php,Mysql,Sql,我正在尝试将数据插入数据库,但此查询失败,我无法找出原因。我刚刚得到“错误更新数据库”输出 表格详情 name varchar(80) sitename varchar(80) pages text colors text navigation text content text PHP 将代码重写为 $conn=mysql_connect("localhost","csuwebdev","") or d
name varchar(80)
sitename varchar(80)
pages text
colors text
navigation text
content text
PHP
将代码重写为
$conn=mysql_connect("localhost","csuwebdev","") or die ('Error: ' . mysql_error());
mysql_select_db("csuwebdev",$conn);
在查询表之前,您需要将数据库连接传递到您的mysql\u select\u db
这个(mysql.*
)扩展从php5.5.0
开始就被弃用,将来将被删除。相反,应该使用MySQLi
或PDO_-MySQL
扩展。切换到PreparedStatements
更能抵御SQL注入攻击
以上代码的PDO版本。[但没有测试]
将代码重写为
$conn=mysql_connect("localhost","csuwebdev","") or die ('Error: ' . mysql_error());
mysql_select_db("csuwebdev",$conn);
在查询表之前,您需要将数据库连接传递到您的mysql\u select\u db
这个(mysql.*
)扩展从php5.5.0
开始就被弃用,将来将被删除。相反,应该使用MySQLi
或PDO_-MySQL
扩展。切换到PreparedStatements
更能抵御SQL注入攻击
以上代码的PDO版本。[但没有测试]
将代码重写为
$conn=mysql_connect("localhost","csuwebdev","") or die ('Error: ' . mysql_error());
mysql_select_db("csuwebdev",$conn);
在查询表之前,您需要将数据库连接传递到您的mysql\u select\u db
这个(mysql.*
)扩展从php5.5.0
开始就被弃用,将来将被删除。相反,应该使用MySQLi
或PDO_-MySQL
扩展。切换到PreparedStatements
更能抵御SQL注入攻击
以上代码的PDO版本。[但没有测试]
将代码重写为
$conn=mysql_connect("localhost","csuwebdev","") or die ('Error: ' . mysql_error());
mysql_select_db("csuwebdev",$conn);
在查询表之前,您需要将数据库连接传递到您的mysql\u select\u db
这个(mysql.*
)扩展从php5.5.0
开始就被弃用,将来将被删除。相反,应该使用MySQLi
或PDO_-MySQL
扩展。切换到PreparedStatements
更能抵御SQL注入攻击
以上代码的PDO版本。[但没有测试]
name
是一个保留关键字,请改为使用`name`
(在查询中),当查询失败时,一个很好的方法是在mysql workbench或类似的平台上进行尝试,它还会以蓝色突出显示保留字。仅供参考:@aleation,您确定吗?我认为不是。你的代码容易受到SQL注入的攻击。您应该继续阅读。而不是die('Error updateding database')
replacedie(mysql_Error())
,然后查看确切的错误是什么。name
是保留关键字,请尝试使用`name`
(在查询中),当查询失败时,一个好方法是在mysql工作台或类似的平台上进行尝试,它还会以蓝色突出显示保留的字。仅供参考:@aleation,你确定吗?我认为不是。你的代码容易受到SQL注入的攻击。您应该继续阅读。而不是die('Error updateding database')
replacedie(mysql_Error())
,然后查看确切的错误是什么。name
是保留关键字,请尝试使用`name`
(在查询中),当查询失败时,一个好方法是在mysql工作台或类似的平台上进行尝试,它还会以蓝色突出显示保留的字。仅供参考:@aleation,你确定吗?我认为不是。你的代码容易受到SQL注入的攻击。您应该继续阅读。而不是die('Error updateding database')
replacedie(mysql_Error())
,然后查看确切的错误是什么。name
是保留关键字,请尝试使用`name`
(在查询中),当查询失败时,一个好方法是在mysql工作台或类似的平台上进行尝试,它还会以蓝色突出显示保留的字。仅供参考:@aleation,你确定吗?我认为不是。你的代码容易受到SQL注入的攻击。您应该继续阅读。而不是die('Error updateding database')
replacedie(mysql_Error())
,并查看确切的错误是什么。如果您帮助我重写此代码,那么它将不会受到SQL注入的影响。我很难将共享链接直接关联到我需要的语法中code@CodeManiak,我可以为你写。。但是勺子喂食对你的日志运行没有帮助。你说什么?只要开始使用准备好的陈述,如果你有任何问题。。张贴在这里,我们总是在那里帮助你!我知道,但示例查询是一个带有单个项的select,而不是带有6的insert$stmt=$dbConnection->prepare('select*FROM employees WHERE name=?')$stmt->bind_参数('s',$name)$stmt->execute()$结果=$stmt->get_result();虽然($row=$result->fetch_assoc()){//用$row}
做点什么,所以我很难把这个例子联系起来。@CodeManiak,看看修改后的答案。我明白了,你可以直接放多个?然后在execute调用中堆叠变量。感谢您花更多的时间解释这一点。如果您帮助我重写这一点,那么它将从SQL注入中获得安全性,这将获得额外的积分。我很难将共享链接直接关联到我需要的语法中code@CodeManiak,我可以为你写。。但是勺子喂食对你的日志运行没有帮助。你说什么?只要开始使用准备好的陈述,如果你有任何问题。。张贴在这里,我们总是在那里帮助你!我知道,但示例查询是一个带有单个项的select,而不是带有6的insert$stmt=$dbConnection->prepare('select*FROM employees WHERE name=?')$stmt->bind_参数('s',$name)$stmt->execute()$结果=$stmt->get_result();虽然($row=$result->fetch_assoc()){//用$row}
做点什么,所以我很难把这个例子联系起来。@CodeManiak,看看修改后的答案。我明白了,你可以直接放多个?然后在execute调用中堆叠变量。Th