我写了一个PHP代码来替换SQL行值。但它没有按预期工作
错误:解析错误:语法错误,第3行......中的意外T_STRING
我想我不应该使用这些引用" "
对吗?但是,当我在没有" "
的情况下运行此错误时
更新评论表时出错:您的SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在第1行使用“1”附近的正确语法
这是我的代码
<?php
include_once("db.php");
$sql1 = "update table1 set marks = replace(c2,"NK",'NOKIA')";
$sql2 = "update table1 set marks = replace(c2,"SM",'SAMSUNG')";
$sql3 = "update table1 set marks = replace(c2,"A",'APPLE')";
$sql4 = "update table1 set marks = replace(c2,"CH",'CHINAPECE')";
$sql5 = "update table1 set marks = replace(c2,"WO",'WORLDCLASS')";
if (mysql_query($sql1 && $sql2 && $sql3 && $sql4 && $sql5))
{
echo "Replaced.";
}
else
{
echo "Error in replacing: " . mysql_error();
}
?>
谢谢!
UPDATE(由Trinimon和beiller吸收sujjestions更新的PHP代码)
错误:解析错误:语法错误,意外';'在....第8行
<?php
include_once("db.php");
$sql1 = "update table1 set marks = replace(c2,"NK",'NOKIA')";
$sql2 = "update table1 set marks = replace(c2,"SM",'SAMSUNG')";
$sql3 = "update table1 set marks = replace(c2,"A",'APPLE')";
$sql4 = "update table1 set marks = replace(c2,"CH",'CHINAPECE')";
$sql5 = "update table1 set marks = replace(c2,"WO",'WORLDCLASS')";
if (mysql_query($sql1);
mysql_query($sql2);
mysql_query($sql3);
mysql_query($sql4);
mysql_query($sql5);)
{
echo "Replaced.";
}
else
{
echo "Error in replacing: " . mysql_error();
}
?>
错误:解析错误:语法错误,意外';'在....第8行
答案 0 :(得分:3)
mysql_query($sql1 && $sql2 && $sql3 && $sql4 && $sql5);
这是不正确的。每个$ sql一个mysql_query。
mysql_query($sql1);
mysql_query($sql2);
mysql_query($sql3);
mysql_query($sql4);
mysql_query($sql5);
正如您的错误消息显示$ sql1&amp;&amp; $ sql2 == TRUE,变为“1”,这是一个无效的查询。
答案 1 :(得分:2)
您的问题是由未转义的引号引起的。使用单引号在查询字符串中定义值。这样就不那么容易混淆了。
这些陈述也有问题。由于您要使用分隔符;
$sql = "update table1 set marks = replace(c2,'NK','NOKIA');";
$sql .= "update table1 set marks = replace(c2,'SM','SAMSUNG');";
$sql .= "update table1 set marks = replace(c2,'A','APPLE');";
$sql .= "update table1 set marks = replace(c2,'CH','CHINAPECE');";
$sql .= "update table1 set marks = replace(c2,'WO','WORLDCLASS');";
并且像这样查询:
mysql_query($sql);
答案 2 :(得分:1)
或者使用此
$sql1 = "update table1 set marks = replace(c2,\"NK\",'NOKIA')";
$sql2 = "update table1 set marks = replace(c2,\"SM\",'SAMSUNG')";
$sql3 = "update table1 set marks = replace(c2,\"A\",'APPLE')";
$sql4 = "update table1 set marks = replace(c2,\"CH\",'CHINAPECE')";
$sql5 = "update table1 set marks = replace(c2,\"WO\",'WORLDCLASS')";
Se this post。
p.s。:另外我对这个命令不太确定:
if (mysql_query($sql1 && $sql2 && $sql3 && $sql4 && $sql5))
结帐this documentation(已弃用,并说“不支持多个查询”)。我想你应该用......
$con=mysqli_connect("host","user","password","database");
mysqli_query($con,$sql1);
mysqli_query($con,$sql2);
...
干杯!
答案 3 :(得分:1)
if (mysql_query($sql1);
mysql_query($sql2);
mysql_query($sql3);
mysql_query($sql4);
mysql_query($sql5);)
错了。您应该在每个语句之间使用逻辑运算符,例如&amp;&amp; (AND),|| (OR)