我可以使用以下代码更新我的数据库:
$id = 1;
$client = 3456;
$sql = "UPDATE production SET client=$client WHERE id=$id";
Run Code Online (Sandbox Code Playgroud)
但是,如果$client变量是文本字符串(而不是数字),则它将不起作用.
$id = 1;
$client = "some text";
$sql = "UPDATE production SET client=$client WHERE id=$id";
Run Code Online (Sandbox Code Playgroud)
我的数据库中的客户端字段是VARCHAR,限制为50个字符.我有什么明显的俯视吗?
在字符串的开头和结尾添加单引号或双引号,使mysql查询中的字符串成为字符串.
更换
$sql = "UPDATE production SET client=$client WHERE id=$id";
Run Code Online (Sandbox Code Playgroud)
同
$sql = "UPDATE production SET client='$client' WHERE id=$id";
Run Code Online (Sandbox Code Playgroud)
如果字符串中有单引号,则上面可能会中断,因此您可以使用addslashes值.
尝试
$sql = "UPDATE production SET client='".addslashes($client)."' WHERE id=$id";
Run Code Online (Sandbox Code Playgroud)
注意:
上面的查询中有SQL注入的可能性.请尝试使用prepare query以防止SQL注入