(나만의 프론트엔드, PHP 초보자)
여러분께 프론트엔드 데이터를 받아 데이터베이스에 넣을 때 왜 써야 하는지 묻고 싶습니다
<code>if ($conn -> query($sql) == true){echo"插入数据库成功"}</code>
이 문장은 데이터가 성공적으로 삽입되어야 한다는 판단이 아닌가요? 판단하지 않는다면 그냥 데이터를 삽입하세요
<code>$sql = "insert into yihe (name, psw) values ('$name', '$psw')";</code>
데이터베이스에 직접 삽입할 수는 없나요????
(나만의 프론트엔드, PHP 초보자)
여러분께 프론트엔드 데이터를 받아 데이터베이스에 넣을 때 왜 써야 하는지 묻고 싶습니다
<code>if ($conn -> query($sql) == true){echo"插入数据库成功"}</code>
이 문장에서는 데이터를 성공적으로 삽입해야 한다는 판단이 아닌가요?
<code>$sql = "insert into yihe (name, psw) values ('$name', '$psw')";</code>
일부 데이터베이스 작업에는
, 插入
등과 같은 반환 값이 있습니다. 작업이 성공하면 true를 반환하고, 실패하면 false를 반환한 다음 결과에 따라 작동합니다. 반환 값 修改
을 쓰지 않으면 삽입이 성공하지 못한다고 했는데, 이는 이해가 잘못되었다는 의미입니다. if
의 실행 결과를 다음과 같은 값에 할당할 수 있습니다. $conn->query($sql)
<code>$flag = $conn->query($sql); if($flag == TRUE){ //如果返回值为TRUE 说明插入成功 否则就插入失败 echo 'nice!'; }else { echo 'error!'; } </code>
쉽게 답변됩니다.
SQL 문이 실행되지 않을 수 있습니다. 예를 들어 데이터베이스 프로세스가 갑자기 충돌하거나, 메모리가 폭발하거나, 심지어 높은 동시성(일반 노트북이 초당 실행할 수 있는 mysql 쿼리의 개수는 몇 백 개에 불과하고, 너무 많으면 제대로 실행되지 않는다) )
데이터를 직접 삽입하려면 문제 없습니다. 다음과 같이 작성하세요.
<code>$conn->query($sql);</code>
아니면 if
아닌가? 어쨌든 이런 방식으로 작성하는 것은 대부분의 경우 괜찮고 실행할 수 있지만 충분히 표준화되지 않았으며 숨겨진 위험이 있습니다. if
두 가지 결과가 있기 때문에 하나는 성공이고 다른 하나는 실패입니다. 성공에는 성공 처리(프롬프트 처리 성공)가 있고 실패에는 실패 처리(예: 사용자 입력 수정 프롬프트)가 있습니다.
이 실행될 때까지 실제로 쓰기가 실행되지 않기 때문입니다. $conn->query($sql)
http://php.net/mysqli
데이터 삽입이 성공했는지 확인하려면 두 가지 조건이 충족되어야 합니다.
첫째, SQL 문에 구문 오류가 없으며 이는 해당 쿼리()는 false를 반환하지 않습니다.
두 번째는 영향을 받는 동작의 1개 행으로, 영향을 받는 행에 1로 반영됩니다.
다른 업데이트/삭제 및 기타 쓰기 작업은 유사합니다.
<code>if ($mysqli->connect_errno) //判断连接是否成功,错误信息$mysqli->connect_error if ($mysqli->query()) //判断SQL语句执行是否成功,错误编号$mysqli->errno,错误信息$mysqli->error if ($stmt->prepare()) //判断SQL语句预处理是否成功,错误编号$mysqli->errno,错误信息$mysqli->error</code>