从 mysqli_query 获取成功/失败响应

Plu*_*mer 6 php mysql

我正在从用户那里收集信息,然后将它们添加到表格中。

$insert = "INSERT INTO jos_activeagents (RINGPHONE, AGENTUID, FNAME, LNAME) VALUES ('(618) 717-2054','".$result['AGTBRDIDMM']."','".$result['AGTFNAME']."','".$result['AGTLNAME']."')";

$set = mysqli_query($link,$insert);
Run Code Online (Sandbox Code Playgroud)

AGENTUID是唯一键。如果用户尝试使用重复的唯一键提交,我会收到错误消息(当然)。

现在,我将如何知道是否以及何时发生错误,然后将响应放回页面?我知道mysqli_get_warnings(),但 PHP 手册没有显示任何示例。

我也尝试AGENTUID先在表中查找:

$check = "SELECT * FROM jos_activeagents WHERE AGENTUID = '".$agt."'";

$runcheck = mysqli_query($link,$check);

$rescheck = mysqli_fetch_assoc($runcheck);

if($rescheck != null){

    echo 'This Agent ID is already enrolled.'

}
Run Code Online (Sandbox Code Playgroud)

但这似乎很草率。有没有更好的方法来做到这一点?

Joh*_*nde 7

您可以使用mysqli_error()查看是否发生错误

if (mysqli_error($runcheck ))
{
   // an error eoccurred
}
Run Code Online (Sandbox Code Playgroud)

在您的特定示例中,您最好在插入之前检查该行是否存在。您的示例很接近,但最好使用mysqli_num_rows()

$check = "SELECT * FROM jos_activeagents WHERE AGENTUID = '".$agt."'";
$runcheck = mysqli_query($link,$check);
if (mysqli_num_rows($runcheck) > 0)
{
    // username in use
}
Run Code Online (Sandbox Code Playgroud)