PHP语法错误:mysqli_stmt_bind_param()

PHP语法错误:mysqli_stmt_bind_param(),php,mysqli,Php,Mysqli,我从未使用过PHP,为了让我的Android设备在一个web服务器上存储三个变量,我正在使用这段代码。我的错误来自以下代码的最后一行: $name = $_POST[“name”]; $password = $_POST[“password”]; $username = $_POST[“username”]; $statement = mysqli_prepare($con, 'INSERT INTO `user`(name,username,password) VALUES(?,?,?)')

我从未使用过PHP,为了让我的Android设备在一个web服务器上存储三个变量,我正在使用这段代码。我的错误来自以下代码的最后一行:

$name = $_POST[“name”];
$password = $_POST[“password”];
$username = $_POST[“username”];

$statement = mysqli_prepare($con, 'INSERT INTO `user`(name,username,password) VALUES(?,?,?)');

mysqli_stmt_bind_param($statement, “sss”, $name, $username, $password);
我的文件名是Register.php,错误是:

警告:mysqli_stmt_bind_param()[function.mysqli stmt bind param]:类型定义字符串中的元素数与第11行/home/a9208046/public_html/Register.php中的绑定变量数不匹配


有人能帮忙吗?谢谢。

问题出在这一行

mysqli_stmt_bind_param($statement, “sss”, $name, $username, $password);

它应该是“sss”而不是“sss”

您正在使用智能引号
;如果您有正确的错误报告,您将看到:

Notice: Use of undefined constant “sss” - assumed '“sss”' in /in/MnZR4 on line 3

这就解释了问题所在;你想要成为一个3个字符的字符串,结果是5个字符,因此出现了错误。使用普通引号,它就可以正常工作。

使用IDE(甚至基本文本编辑器)处理PHP文件。不要使用MS Word或LibreOffice或任何“文字处理器”。我这么说是因为你的代码中充斥着“智能引号”。将
/
替换为普通引号
。代替
“sss”
,即代替
{左双引号=U+201C}sss{右双引号=U+201D}
-简单双引号(U+0022)就可以了。