0
내가 삽입하고 mysqli에서 데이터를 업데이트 할 준비가 문을 사용하려면
, 나는이 같은 올바른 쿼리가있을 때 그것은 잘 작동mysqli : 삽입 및 업데이트 날짜에 대한 준비 문 오류?
class database extends mysqli
{
...
# insert and update data
public function query_stmt($sql,$types = null,$params = null)
{
# create a prepared statement
$stmt = parent::prepare($sql);
if($stmt)
{
# bind parameters dynamically for markers
if($types&&$params)
{
$bind_names[] = $types;
for ($i=0; $i<count($params);$i++)
{
$bind_name = 'bind' . $i;
$$bind_name = $params[$i];
$bind_names[] = &$$bind_name;
}
$return = call_user_func_array(array($stmt,'bind_param'),$bind_names);
}
# execute query
$result = $stmt->execute();
if($result) return 'success!';
else return 'failed!';
# close statement
$stmt->close();
}
else
{
return self::get_error();
}
}
# display error
public function get_error()
{
if($this->errno || $this->error)
{
return sprintf("Error (%d): %s",$this->errno,$this->error);
}
}
public function __destruct()
{
parent::close();
//echo "Destructor Called";
}
}
다음
내 database
클래스는,
$sql = "
INSERT root_countries_cities_towns (
tcc_names,
cny_numberic,
tcc_created
)VALUES(
?,
?,
NOW()
)";
$mysqli->query_stmt($sql, 'ss',array('UK','004'));
하지만 잘못된 검색어 (예 :
)가있는 경우 결과를 반환하고 싶습니다.$sql = "
INSERT root_countries_cities_townx (
tcc_names,
cny_numberic,
tcc_created
)VALUES(
?,
?,
NOW()
)";
root_countries_cities_townx
테이블이 존재하지 않습니다. 따라서 query_stmt
메서드를 사용하여 이러한 유형의 오류 메시지를 브라우저에 반환하고 싶습니다. 하지만 내 방법은 그렇지 않습니다! 왜?
나는
# execute query
$result = $stmt->execute();
if($result) return 'success!';
else return 'failed!';
나는 그래서 코드에서 무엇을 추가하거나 변경해야합니다, 그것은 확인을인지하지만, 전혀 아무것도 내 브라우저에 출력되지 않고 있는지 몇 가지 기본 단어를 반환하는 테스트하는 것을 시도했다 그것은 ok 일 때 긍정적 인 메시지를 반환 할 수 있고 ok가 아닌 경우 negative 메시지를 반환합니다.
감사합니다.
등이 있습니다. 고맙습니다. 내 어리석은 실수 ... – laukok