我在MySQL上非常新,在创建此脚本以更新MySQL数据库表中的一行并运行它后,我会得到此错误
错误:您的SQL语法中有一个错误;查看与您的MySQL Server版本相对应的手册,以获取右边的语法,以附近使用'265'',雇员_vat_number ='''45698''',雇员_name =''namtax_ltd''namtax_ltd'
这是代码
// username and password sent from form
$Numb=$_POST["Numb"];
$VAT=$_POST["VAT"];
$Name=$_POST["Name"];
$Addr=$_POST["Addr"];
$PO=$_POST["PO"];
// To protect MySQL injection (more detail about MySQL injection )
$Numb = stripslashes($Numb);
$VAT = stripslashes($VAT) ;
$Name = stripslashes($Name) ;
$Addr = stripslashes($Addr) ;
$PO = stripslashes($PO) ;
$Numb = "'" . mysql_real_escape_string($Numb) . "'";
$VAT = "'" . mysql_real_escape_string($VAT) . "'";
$Name = "'" . mysql_real_escape_string($Name) . "'";
$Addr = "'" . mysql_real_escape_string($Addr) . "'";
$PO = "'" . mysql_real_escape_string($PO) . "'";
$sql=("UPDATE $tb1_name SET Employer_Registration_Number ='".$Numb."', Employer_VAT_number = '".$VAT."', Employer_Name = '".$Name."', Employer_Address = '".$Addr."', Employer_Postal_Address = '".$PO."' WHERE Employer_Name = '".$Name."' ");
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "Successfully Updated";
mysqli_close($con);
?>
</body>
此处:
$Numb = "'" . mysql_real_escape_string($Numb) . "'";
首先,不是适当的语法,您正在使用 mysqli_
进行连接,我肯定希望您是。
- 那些不同的mysql apis do 不是互相混合。
应该读为:
$Numb = mysqli_real_escape_string($con,$Numb);
在对您的其余变量进行相同的操作时,遵循此处概述的相同方法。
脚注:
看到您没有发布$tb1_name
是什么,这会引起问题。但是,仅出于争论的目的,将其包装在刻度中,因此,如果您的表名称更改为包含连字符或空间的东西,或者MySQL会抱怨的任何东西。
UPDATE `$tb1_name` SET...
plus,由于您没有提及要使用的mySQL API,因此请确保它实际上是mysqli_
而不是mysql_
或PDO。
它看起来不像它,但是我必须100%确定。
您的连接应类似于这样的东西:
$con = mysqli_connect("yourhost","user","pass","your_DB")
or die("Error " . mysqli_error($con));
再次,那些不同的mysql apis do 不是互相混合。
- 咨询(PHP:选择API - 手册):https://php.net/mysqlinfo.api.api.choosing
"我在mysql ..."
很新
看到您是新手:
- 使用
mysqli
带有准备的语句,或 pdo带有准备的语句。
其他注释。(作为编辑)
我注意到您之前发布的另一个问题:
- https://stackoverflow.com/q/30191388/
您说"谢谢你有效" 在给定的答案中https://stackoverflow.com/a/30191647/
我不明白。
在使用 if (!mysqli_query($con,$sql))
的地方,这可能如何工作?
- 您需要向我们展示与此处的联系方式。
如果您真的想查看查询是否成功,请使用mysqli_affected_rows()
。
if(mysqli_affected_rows($con)){
echo "Successfully updated.";
}
else{
echo "Not updated.";
}
添加错误报告到您的文件顶部,这将有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
sidenote:错误报告仅应在分期进行,而不应生产。